ARM CPU從高階語言到Machine Code

Slides:



Advertisements
Similar presentations
嵌入式系统与单片机 北京科技大学电子信息系.
Advertisements

第 2 章 中央處理單元.
NEUSOFT Institute of information Technology .ChengDu
第二章 微型计算机系统 第一节 基本术语和基本概念 第二节 计算机系统的基本构成 第三节 微机系统的硬件组成 第四节 微机系统的软件组成.
IT原理与应用(1)-电脑系统 IT Principles and Applications (1) - Computer System
Chap4 電腦硬體基本單元 高中資訊科技概論 松崗圖書公司.
第一章 计算机基础知识 计算机的发展简史 1 计算机软件系统 6 计算机的定义和分类 2 微型计算机的组成 7 计算机的特点和用途 3
Foundations of Computer Science
最新計算機概論 第3章 計算機組織.
新世代計算機概論 第3章 電腦的系統單元.
第四章 存储体系.
半导体存储器 第四章 半导体存储器.
单片机原理与应用.
版权所有,引用请注明出处 第四章、存储系统-2 原著 谭志虎 主讲(改编) 蒋文斌.
單晶片原理與應用 魏兆煌 整理 南台科技大學 電機系 Sep
Chapter 5 電腦元件 目標---- 研讀完本章後,你應該可以: 閱讀有關電腦的廣告以及了解它的專業用語(行話)。
ARM及Thumb指令集.
第 4 章 記憶單元.
第 2 章 中央處理單元.
ARM 架构.
電腦硬體基本介紹 國立高雄大學資訊工程學系 林士倫 2010/10/21.
第5章 中央處理單元與主記憶體 5-1 中央處理單元-CPU 5-2 主記憶體.
基本硬體介紹 1.主機板 2.CPU(運算中心) 3.記憶體(RAM-短暫記憶資料處) 4. 硬碟(HDD儲存資料處) 5.顯示卡(接螢幕)
ARM存储器结构 ARM架构的处理器的存储器寻址空间有4G字节 ,存储空间可以分为 :
嵌入式系统讲义 第3章 ARM指令系统 周国运
指令集架構 計算機也跟人類一樣,需要提供一套完整的語言讓人們跟它充分溝通,以完成正確的計算工作。
第3章 ARM体系结构.
C H A P T E R 10 存储器层次.
KeyStone I DSP[C665x 与 C6678] 视频教程
1-1 微電腦系統單元 1-2 微電腦系統架構 1-3 微控制器(單晶片微電腦) 1-4 類比與數位訊號介面
1-1 微電腦系統單元 1-2 微電腦系統架構 1-3 微控制器(單晶片微電腦) 1-4 類比與數位訊號介面
第五章 存储系统 半导体存储器概述 系统内存扩充 高速缓冲存储器 虚拟存储器 PC系列机中的主存储器 习题与思考 上一章 目 录 帮助
第 6 章 存储系统 6.1 概述 存储器的层次结构 存储器的分类 存储器的基本组成
5 Computer Organization (計算機組織).
2018/11/ /11/23 TRAINING-LZW.
Operating System Internals and Design principles
存储设备介绍 广州创龙电子科技有限公司 Guangzhou Tronlong Electronic Technology Co., Ltd.
Computer Organization
单片机应用技术 项目一 循环彩灯装置 第2讲 51单片机的结构与引脚 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
KeyStone I DSP[C665x 与 C6678] 视频教程
電腦的硬體架構.
嵌入式体系结构与应用 第三章-ARM指令系统(ARMv4T).
第2章 電腦硬體知識 2-1 電腦基本硬體結構 2-2 電腦的週邊設備 2-3 電腦的操作與保養
第2章 ARM微处理器硬件结构 计算机体系结构分类 ARM版本及系列 ARM处理器结构 存储系统机制.
ARM處理器 定址方式.
第五章 C/C++及汇编语言的混合编程 5.1 ARM C/C++编译器 5.2 在C/C++程序中内嵌汇编指令
嵌入式系统教案 武汉创维特信息技术有限公司 2019/1/18.
(第2版).
資料處理 第一部份:電腦入門概論 第二章 電腦的硬體
計算機概論 第3章 計算機組織與結構概觀.
Computer Inside/Outside
CISC vs. RISC 複雜指令集電腦(Complex Instruction Set Computer: CISC)
第2章 ARM体系结构.
任务一:初识计算机 任务二:学习计算机中的信息表示 P /4/7.
ARM 架构.
ARM 架构.
第四章 存储器管理 4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续分配方式 4.4 基本分页存储管理方式
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
第3章 ARM微處理器的指令集.
计算机系统结构(2012年春) ----存储层次: Cache基本概念
第5章 存储器 5.1 存储器概述 5.2 半导体存储芯片结构及使用 位系统的存储器接口.
ARM指令集 Author : Steve Furber Advisor: Mei-Ling Chiang Speaker: 徐翔宇
3 電腦硬體 3-1 處理單元 3-2 記憶單元 3-3 輸入單元 3-4 輸出單元 3-5 電腦元件的使用與故障排除.
微處理機 Microprocessor (100上)
第六章 記憶體.
ARM简介及BootLoader介绍 黄大荣
微處理機 Microprocessor (100上) ARM 內核嵌入式SOC原理
嵌入式系统教案 武汉创维特信息技术有限公司 2019/10/1.
ARM裸机第二部分-ARM体系结构与汇编指令
第三章 计算机体系结构.
Presentation transcript:

ARM CPU從高階語言到Machine Code 劉冠彣 2017/11

outline ITRI Small Cell ARM架構 ARM Addressing Modes ARM指令格式 Memory 浮點數運算 IC製造過程

ITRI Small Cell

ITRI Small Cell PHY L1 Software on TI 66xx Series DSP L2/L3/RRM Software on TI 66xx Series DSP/ARM core TCI6638K2K Multicore DSP ARM KeyStone II System-on-Chip (SoC)

TCI6638K2K

ARM架構

ARM ARM將設計授權給設計公司(如Qualcomm),製造授權給晶圓代工公司(如台積電),最後生產出來的晶片再賣給其他廠商做成實際產品(如HTC)

ARM Cortex-A15

ARM 處理器的指令集可簡單分為2種,CISC(complex instruction set computer)以及RISC (reduced instruction set computer)。 ARM的架構是採用RISC架構,如同它的名稱一樣,Advanced RISC Machines RISC的優點列舉如下: 指令長度固定,方便CPU解碼,簡化解碼器設計。 盡量在CPU的暫存器(最快的記憶體元件)裡操作,避免額外的讀取與載入時間。 由於指令長度固定,更能受益於執行線路管線化(pipeline)後所帶來的效能提升。 處理器簡化,電晶體數量少,易於提升運作時脈。比起同時脈的CISC處理器,耗電量較低。 RISC的缺點列舉如下: 複雜指令需要由許多的小指令去完成,程式變得比較大,記憶體也占用比較多,這在硬碟昂貴,常常 使用磁帶儲存的時代來說,是個大缺點。 程式變長,代表著讀取工作變得繁重,需要更多的時間將指令從記憶體載入至處理器內。

哈佛架構 哈佛架構則是馮‧紐曼架構的延 伸,哈佛架構更進一步定義了程式 和資料是由兩個獨立的空間儲存, 同時也有兩個記憶體控制單元分別 操作。讀取程式後解碼便得到資料 位址,再到資料記憶體中讀取資 料。此種架構好處在於指令和資料 的記憶體操作能夠同時進行,當處 理器在運算資料時,便可以先行擷 取下一道指令。

cache D-cache (data) I-cache (instruction) a cache in a CPU or GPU servicing data load and store requests, mirroring main memory (or VRAM for a GPU). I-cache (instruction) a cache in a CPU or GPU servicing instruction fetch requests for program code (or shaders for a GPU), possibly implementing modified Harvard architecture if program machine code is stored in the same address space and physical memory as data.

ARM Addressing Modes

ARM Addressing Modes 立即定址 (Immediate) 暫存器定址 (Register direct) 基底定址 (Base Displacement) 暫存器偏移定址 (Scaled register offset) 暫存器間接定址 (Register indirect) 多暫存器定址 (Multiple register) 區塊拷貝定址 (Stack) 相對定址 (PC-relative)

立即定址 (Immediate) 也叫即時定址,指令中的操作碼欄位後面的位址碼部分就是運算 元本身。也就是說,資料就包含在指令當中,取出指令也就取出 了可以立即使用的運算元(立即值)。 SUBS R0,R0,#1 ;R0-1→R0 E2 40 00 01 MOV R0,#0xff00 ;0xff00→R0 E3 A0 0C FF

暫存器定址 (Register direct) 利用暫存器中的數值作為運算元,運算元的值在暫存器中,指令 中的位址碼欄位指出的是暫存器的編號,指令執行時直接取出暫 存器值操作,是一種執行效率較高的定址方式。 MOV R1,R2 ;R2→R1 E1 A0 10 02 SUB R0,R1,R2 ;R1-R2→R0 E0 41 00 02

基底定址 (Base Displacement) 又稱為基址變址定址,是將基底暫存器的內容與指令中給出的偏 移量相加,形成運算元的有效位址。基底定址用於存取基底位址 附近的儲存單元,常用於查表、陣列操作、功能元件暫存器存取 等。 LDR R2,[R3,#0x0F] ;R2←[R3+0x0F] E5 93 20 0F STR R1,[R0,#-4] ;R1←[R0-4] E5 00 10 04 LDR R0,[R1,#4] ;R0←[R1+4]、R1 ←R1+4 E5 91 00 04 LDR R0,[R1],#4 ;R0 ←[R1]、R1 ←R1+4 E4 91 00 04 LDR R0,[R1,R2] ;R0 ←[R1+R2] E7 91 00 02

暫存器偏移定址 (Scaled register offset) 暫存器偏移定址是ARM指令集特有的定址方式,當第2個運算元 是暫存器偏移方式時,第2個暫存器運算元在第1個運算元結合之 前,選擇進行移位操作。 Logical shift by immediate Logical shift by register MOV R0,R2,LSL #3 ;R2的值左移3位,結果放入R0,即R0=R2*8 E1 A0 01 82

暫存器間接定址 (Register indirect) 暫存器間接定址指令中的位址碼,給出的是一個通用暫存器編號, 所需要的運算元保存在暫存器指定位址的儲存單元中,即暫存器 為運算元的位址指標。 LDR R1,[R2] ;R1←[R2] E5 92 10 00

多暫存器定址 (Multiple register) 就是一次可以傳送多個暫存器值,允許一條指令傳送16個通用暫 存器的任何子集或所有暫存器。 LDMIA﹙Load Multiple Increment After﹚ 連續的暫存器可用”-”連接,否則用”,”分隔書寫 LDMIA R1,{R2,R12} ;R2←[R1],R12←[R2+4] E8 91 10 04

區塊拷貝定址 (Stack) 多暫存器傳送指令,用於將一塊資料從記憶體的某一位置拷貝到 另一位置。 STMIA R0!,{R1-R7} E8 A0 00 FE STMIB R0!,{R1-R7} E9 A0 00 FE STMDA R0!,{R1-R7} E8 20 00 FE STMDB R0!,{R1-R7} E9 20 00 FE 第1條指令將R1~R7的資料保存到記憶體中,記憶體指標在保存第1個值之後增加,增長方向為向上增長 第2條指令將R1~R7的資料保存到記憶體中,記憶體指標在保存第1個值之前增加,增長方向為向上增長 第3條指令將R1~R7的資料保存到記憶體中,記憶體指標在保存第1個值之後增加,增長方向為向下增長 第4條指令將R1~R7的資料保存到記憶體中,記憶體指標在保存第1個值之前增加,增長方向為向下增長

相對定址 (PC-relative) 是基底定址的一種變通,由程式計數器PC提供基準位址,指令中 的位址碼欄位作為偏移量,兩者相加後得到的位址即為運算元的 有效位址。 BL ROUTE1 ;呼叫ROUTE1 副程式 EB FF FF FE BEQ LOOP ;條件跳躍到LOOP1標籤處 0A 00 01 11

ARM指令格式

ARM 的指令格式

ARM 的指令格式 ARM的指令格式,位於31-28 位元的 Cond 欄位,是指令前置條件 欄,因此每個 ARM 指令都是條件式執行的。因此,ARM 的跳躍 類指令只有 B、BL、BX 等三個,其中 BL 是會儲存程式計數器 PC 到 LR 當中的跳躍,通常用來進行副程式的呼叫,而 BX 則是會儲 存狀態暫存器的跳躍。

暫存器 R13 也被指為 SP(Stack Pointer) R14 也被指為 LR(Link Register) R15 也被指為 PC(Program Counter)

ARM 的狀態暫存器 (CPSR, SPSR)

ARM 的狀態暫存器 (CPSR, SPSR) ARM的狀態暫存器有 CPSR (Current Processor Status Register) 與 SPSR (Saved Processor Status Register)。其中 SPSR 乃是在中斷時用 來自動儲存CPSR的暫存器。 狀態暫存器 CPSR 與 SPSR的結構,除了用來儲存條件旗標之外, 還有中斷控制位元 I、F,可用來允許或禁止中斷,狀態位元 T 用 來記錄處理器是位於正常 (ARM:指令為32位元) 或精簡 (Thumb:指 令為16位元) 狀態,處理器模式 Mode 是用來記錄處理器的模式, 像是 (User / System / FIQ / SVC / ABT / IRQ / Undef) 等。

CPSR

ARM的指令集 指令 說明 意義 運算指令 MOV {cond}{S} Rd,operand2 資料傳送 Rd<=operand2 MVN{cond}{S} Rd,operand2 負資料傳送 Rd<=(~operand2) ADD{cond}{S} Rd,Rn,operand2 加法運算 Rd<=Rn+operand2 SUB{cond}{S} Rd,Rn,operand2 減法運算 Rd<=Rn-operand2 RSB{cond}{S} Rd,Rn,operand2 逆向減法 Rd<=operand2-Rn ADC{cond}{S} Rd,Rn,operand2 帶進位加法 Rd<=Rn+operand2+Carry SBC{cond}{S} Rd,Rn,operand2 帶進位減法 Rd<=Rn-operand2-(NOT)Carry RSC{cond}{S} Rc,Rn,operand2 帶進位逆向減法 Rd<=operand2-Rn-(NOT)Carry AND{cond}{S} Rd,Rn,operand2 邏輯“與”操作 Rd<=Rn&operand2 ORR{cond}{S} Rd,Rn,operand2 邏輯“或”操作 Rd<=Rn|operand2 EOR{cond}{S} Rd,Rn,operand2 邏輯“互斥或” Rd<=Rn^operand2 BIC{cond}{S} Rd,Rn,operand2 位元清除 Rd<=Rn&(~operand2) CMP{cond} Rn,operand2 比較指令 標誌 N、Z、C、V<=Rn-operand2 CMN{cond} Rn,operand2 負數比較指令 標誌 N、Z、C、V<=Rn+operand2 TST{cond} Rn,operand2 位元測試指令 標誌 N、Z、C、V<=Rn&operand2 TEQ{cond} Rn,operand2 相等測試指令 標誌 N、Z、C、V<=Rn^operand2

ARM的指令集 記憶體相關指令 LDR{cond} Rd,addressing 載入 Word Rd<=[addressing] LDR{cond}B Rd,addressing 載入 Byte LDR{cond}T Rd,addressing 載入Word (以使用者模式) LDR{cond}BT Rd,addressing 載入Byte (以使用者模式) LDR{cond}H Rd,addressing 載入半字組 LDR{cond}SB Rd,addressing 載入 byte (有正負號) LDR{cond}SH Rd,addressing 載入半字組 (有正負號) STR{cond} Rd,addressing 儲存Word [addressing]<=Rd STRB{cond} Rd,addressing 儲存Byte STR{cond}T Rd,addressing 儲存Word (以使用者模式) STR{cond}BT Rd,addressing 儲存byte (以使用者模式) STR{cond}H Rd,addressing 儲存半字組 LDM{cond}{mode} Rn{!},reglist 多暫存器載入 reglist<=[Rn…],Rn 寫回 STM{cond}{mode} Rn{!},reglist 多暫存器儲存 [Rn…]<=reglist, Rn 寫回 SWP{cond} Rd,Rm,Rn 暫存器和記憶體字資料交換指令 Rd<=[Rn],[Rn]<=Rm (Rn≠Rd或Rm) SWP{cond}B Rd,Rm,Rn 暫存器和記憶體位元組資料交換指令

ARM的指令集 分支指令 B{cond} label PC<=label BL{cond} label 帶連接的分支 LR<=PC-4,PClabel BX{cond} label 帶狀態的分支 PC<=label, 切換處理器狀態 其他指令 SWI{cond} immed_24 軟中斷指令 產生軟中斷,處理器進入管理模式 MRS{cond} Rd,psr 讀狀態暫存器指令 Rd<=psr,psr為 CPSR 或 SPSR MSR{cond} psr_fields,Rd/#immend_8r 寫狀態暫存器指令 psr_fields<=Rd/#immed_8r,p 為 CPSR 或 SPSR 協同處理器指令 CDP{cond} coproc,opcode1,CRd,CRn,CRm(,opcode2) 協同處理器資料操作指令 取決於協同處理器 LDC{cond}{L} coproc,CRd,<地址> 協同處理器資料讀取指令 STC{cond}{L} coproc,CRd,<地址> 協同處理器資料寫入指令 MCR{cond} coproc,opcodel,Rd,CRn,CRm{,opcode2} ARM暫存器到協同處理器暫存器的資料傳送指令 MRC{cond} coproc,opcodel,Rd,CRn,CRm{,opcode2} 協同處理器暫存器到ARM暫存器的資料傳送指令

指令示範 int x=10; int y=8; if (y<x) x = y; else y=x; MOV r3, #10 //10→r3 E3 A0 30 0A STR r3, [r1, #8] //r3→[r1+8] E5 81 30 08 MOV r3, #8 //8→r3 E3 A0 30 08 STR r3, [r1, #12] //r3→[r1+12] E5 81 30 0C LDR r2, [r1, #8] // [r1+8]→r2 E5 91 20 08 LDR r3, [r1, #12] // [r1+12]→r3 E5 91 30 0C CMP r2, r3 //r2-r3 E1 52 00 03 BLE .L3 //if(<=0) branch to .L3 DA 00 01 11 LDR r3, [r1, #8] //[r1+8]→r3 E5 91 30 08 STR r3, [r1, #12] //r3→[r1+12] E5 81 30 0C .L3: LDR r3, [r1, #12] //[r1+12]→r3 E5 91 30 0C STR r3, [r1, #8] //r3→[r1+8] E5 81 30 08

指令示範 While(r1!=0) r1= r0++; loop: LDR r1, [r0], #1 //r1←r0 , r0←r0+1 E4 90 10 01 CMP r1, #0 // r1-0 E3 51 00 00 BNE loop //if not equal,branch to loop 1A FF FF FE

OpCode

OPCode 範例 SUB R0,R0,#1 E2 40 00 01HEX=1110 0010 0100 0000 0000 0000 0000 0001BIN Cond I OpCode S Rn Rd Operand 2

Memory

Memory level 1 2 3 4 name registers cache main memory HDD or SSD typical size <1KB >16MB >16GB >500G implementation technology custom memory with multiple ports, CMOS on-chip or off-chip CMOS SRAM CMOS DRAM magnetic disk or NAND flash access time(ns) 0.25~0.5 0.5~25 80~250 5000000 bandwidth (MB/sec) 20000~100000 5000~10000 1000~5000 20~500 managed by compiler hardware operating system backed by CD or tape

隨機存取記憶體(random access memory, RAM) 是一種可以讀出也可寫入的雙向性記憶體。通常用來暫存待處理的應用程式或資 料。也是電腦病毒會寄生的位置。當停電或關機後,其RAM內的資料會消失,因此 通常在停機前必須將RAM內的資料存到磁碟等輔助記憶體上,再行關機。 通常分為下列種類: DRAM(Dynamic Random Access Memory):主要用於電腦的主記憶體。在DRAM裏,資訊是存 放在電容器裏的一系列電荷。在幾微秒內,它就可以充電完畢,但是電容器會漏電,所以 需要不斷地充電以維持電位。就是因為要不斷充電,所以它才叫作「動態」。DRAM存取速 度較慢,但價格較便宜。 SRAM(Static Random Access Memory):通常被採用來作為快取記憶體(Cache Memory)。以 正反器(Flip-Flop)為基本記憶元件,只有在寫入動作時才會有充電動作。如果沒有寫入的指 令,在SRAM裡不會有任何東西被更動,這也是它為什麼被稱為靜態的原因。SRAM的優點是 它比DRAM快得多。缺點則是它比DRAM貴許多。

DRAM "1" 狀態 "0" 狀態

SRAM SRAM的基本單元有3種狀態:standby (電路處於閒置), reading(讀取)與writing(寫入) 字元線(Word Line)、位元線(Bit Line) 1 1 1 standby (Q=1) reading (Q=1) writing (寫入0)

唯讀記憶體(read-only-memory, ROM ) 這種記憶體在出廠時,就已經將資料寫入(燒錄),電腦在運作時僅能從中讀取資料,而無法寫入新 的資料。例如:BIOS(基本輸入及輸出系統)記憶體,是一套程式,在出廠時就已經燒錄在裡面,不 會隨著電源的關閉而消失,就是最典型的ROM。 通常分為下列種類: ROM (Masked ROM) 出廠時即已燒錄好程式碼,只允許讀出而無法再寫入 PROM (Programmable ROM:) 可供燒錄一次 EPROM(Erasable PROM) 可反覆燒錄多次,清除資料須用紫外線(UV),清除時需完全複寫 EEPROM (Electrically EPROM) 藉由電壓來清除資料,可燒錄多次,可部分清除資料,一次一個bit Flash Memory 與EEPROM同樣都是使用電壓就能快速更新程式或資料,加資料時可在區塊中寫入或清除,並去除一次一個bit之限制

HDD (Hard Disk Drive)

HDD (Hard Disk Drive) 磁軌 磁區 柱面 當磁盤旋轉時,磁頭若保持在一個位置上,則每個磁 頭都會在磁盤表面劃出一個圓形軌跡,這些圓形軌跡 就叫做磁軌(Track)。 磁區 磁盤上的每個磁軌被等分為若干個弧段,這些弧段便 是硬碟的磁區(Sector)。 柱面 在有多個碟片構成的盤組中,由不同碟片的面,但處 於同一半徑圓的多個磁軌組成的一個圓柱面 (Cylinder)。 硬碟的儲存量:磁柱 x 磁軌 x 磁區 x 磁區大小。 (磁碟片資料的儲存是以 sector 為最小單位。)

SSD (Solid State Drive) NAND Flash Memory (橘色):負責存放資料 非揮發性(NON-VOLATILE),即使沒有供應電源,也能保存已 經寫入的資料。 快閃記憶體的寫入操作必須在空白區域進行,如果目標區域已 經有資料,必須先擦除後寫入,因此擦除操作是快閃記憶體的 基本操作。 Controller (黃色):控制SSD NAND Flash Memory有抹除次數限制,為了讓使用壽命延長, Controller必須有效率讓每個Page平均寫入,避免都是在對同一 個page作讀寫這樣會加速損耗導致壽命減短。 將Flash Memory模擬成傳統硬碟讓Flash Memory可以直接在PC上 使用。  不同廠商的Controller的運算方法皆不同。

Trinary-Level Cell,TLC NAND Flash Memory 當要將電子存放進浮閘(Floating Gate)時,便是調整控 制閘(Word Line Control Gate)的電壓,讓部分電子以量 子穿隧效應躍進浮閘。當電子充滿浮閘時,它便代表 0, 當浮閘內部沒有電子時,則代表著 1。一旦要寫資料進入 memroy 中,則將部分元件的電子導出浮閘。這樣便可形 成 0 和 1 相間的排列方式,滿足儲存資料的目標。 Single-level cell, SLC Multi-level cell, MLC Trinary-Level Cell,TLC 儲存位元 1bit/cell 2bit/cell 3bit/cell 讀寫速度 高 中 低 P/E cycle 100000 3000 1000 價格 貴 便宜 排列方式  0 或 1 00、01、10、11 000、001、010、011、100、101、110、111

CACHE MAPPING

Cache mapping 用來紀錄一個 memory block 要對映到那一個 cache block direct mapping: 1:1,每個 cache block 僅可以對應到唯一的一個 main memory block 優點:搜尋時間短 缺點:hit rate 低 fully associative: 任意 cache block 可以對應到任意的 main memory block 優點:hit rate 高 缺點:搜尋時間長,CPU 必須掃過整個 cache 才能決定是否該繼續往 main memory 撈資料。電路設計 最複雜,較昂貴。 n-way associative: 把 cache 分成多個 set,CPU 必須檢查指定 set 內的每個 block 是否有可用 的 cache 優點:搜尋時間短且 hit rate 高 worst case: Fully Associative 的情況,也就是 CPU 要檢查整個 cache

Direct mapping 範例:快取有128 lines,每個區塊有4 words,Tag 5 bits,請問直接對映式快取之格式為何? 答案: 每個區塊有4個字組 : 4=22 word欄有2 bits 快取有128個區塊: 128=27 block欄有7 bits tag 5 bits 主記憶體為214個word Line size = block size 5bits 7bits 2bits 4095÷128=31⋯127

Fully associative mapping 範例:快取有128 lines,每個區塊有4 words,Tag 12 bits,請問完全關聯式快取之格式為何? 答案: 每個區塊有4個字組 : 4=22 word欄有2 bits tag欄有12 bits 主記憶體為214個word Line size = block size 12bits 2bits

Set associative mapping 範例:快取有128 lines,每個集合有2 lines,每個區塊有4 words,Tag 6 bits,請問2-way集合關聯式快取之 格式為何? 答案: 每個區塊有4個字組 : 4=22 word欄有2 bits 快取有128個區塊,每個集合有2個區塊 :128/2= 64=26 set欄有6 bits tag欄有6 bits 主記憶體為214個word Line size = block size 6bits 6bits 2bits 4095÷64=63⋯63

Replacement algorithm 當讀入新區塊到快取中,而快取中之某一區塊(line)必須移出 LRU(Least Recently Used):將集合中目前最久沒使用的區塊加以取代。可 減少失誤次數,實作困難且成本高。 LFU(Least Frequently Used):將集合中一定時間內被使用次數最少的區塊 加以取代。可減少失誤次數,實作困難且成本高。 LRU LFU

Replacement algorithm FIFO(First In First Out,先進先出):將集合中最早進入的區塊加以取代。實作 較簡單,失誤較高。 LIFO(Last in first out,後進先出):將集合中最晚進入的區塊加以取代。實作 較簡單,失誤較高。 Random(隨機選取):由集合中隨機選一個區塊加以取代。實作最簡單,常 用在快取記憶體。

浮點數運算

小數點表示法 150.62510 = 10010110.1012 正規化 : 10010110.101 = 0.10010110101X28 符號位元:佔第1個位元,0表示正數,1表示負數。 指數部分:佔2到9,共8個位元。 (8+64=7210=10010002) 假數部分:佔10到32,共23個位元。

精度 單精度浮點數 雙精度浮點數 單精度浮點數使用32位元(4位元組)來儲存一個浮點數 −3.4× 10 38 ~3.4× 10 38 雙精度浮點數使用64位元(8位元組)來儲存一個浮點數 −1.79× 10 308 ~1.79× 10 308

準確性 二進位浮點數不能表達0.1 十進位 0.1=二進位0.000110011001100110011... 的一個循環小數,表示八 位數, 也就是 0.00011001,十進位1/256 + 1/32 + 1/16 = 25/256 = 0.09765625 π的值可以表示為π = 3.1415926...(十進位)。當在一個支援17位 尾數的電腦中表示時,它會變為0.11001001000011111 × 22。 浮點數也不能表達圓周率 所以 tan 𝜋 2 不等於正無窮,也不會溢位 sin 𝜋≠0

IC製造過程

IC設計

晶圓製造

光罩製作

切割、測試、封裝