Qu an tr ọn g đ ối v ới 1 ng ườ i sử dụ ng Thời gian đáp ứng thời gian thực thi – là khoảng thời gian giữa thời điểm bắt đầu thực hiên và thời điểm hoàn thành một nhiệm vụ Thời gian đ
Trang 1Kiến trúc máy tính Computer architecture
To improve is to change; to be perfect is to change often.
Winston Churchill
Trang 2Nội dung môn học
Trang 3Tài liệu tham khảo
Trang 41500 rơle
30 tấn
140 kw
ENIAC (1946) 18.000 bóng đèn
Kiến trúc đặc trưng, có khả năng cấu hình lại, di động, tiêu thụ ít
năng lượng, xử lý song song
Lịch sử phát triển của máy tính
Trang 5Máy tính hiện đại
5
Personal Mobile
Devices
Trang 66
Trang 77
Trang 8PDP-11, VAX, Motorola 68k, x86 intel.
Cấu tạo
Quan niệm truyền thống về cấu trúc máy tính
Phần cứng
Phần mềm
hệ thống
Phần mềm
hệ thống Phần mềm ứng
dụng Phần mềm ứng dụng
Trang 9Quan niệm truyền thống về cấu trúc máy tính
9
I/O system Processor
Compiler
Operating System (Mac OSX) Application (ex: browser)
Digital Design Circuit Design
Instruction Set Architecture
Datapath & Control
transistors
Memory
Hardware
Trang 10ApplicationLibrariesOperating SystemProgramming LanguageAssembler LanguageGraphical Interface
Logic DesignDatapath and Control
Circuit DesignSemiconductorsMaterials
Firmware
Circuits and devices Fabrication
Digital Design Computer Design
Application Programming
System Programming
Microprogramming Instruction Set Architecture - “Machine Language”
Cấu trúc máy tính
Trang 12Bắt đầu từ : Nguyên lý thiết kế và cấu trúc máy tính truyền thống
Hiểu nguyên lý thiết kế
Thiết kế máy tính theo yêu cầu
Cấu trúc bộ xử lý MIPS – 32 MIPS = Microprocessor without Interlocked Pipeline Stages
Trang 13To change
Trang 14Gordon Moore Intel Cofounder B.S Cal 1950!
Trang 15Định luật Moore
15
Định luật Moore là một bước ngoặt lớn trong ngành công nghệ
điện tử, giải thích tại sao nhà sản xuất có thể giảm giá thành
trong khi vẫn tiếp tục nâng cao hiệu suất của phần cứng.
Hiện nay, thời gian để tăng đôi số transistor/inch vuông đã dài
hơn vì kích thước transistor không thể giảm nhỏ kích thước
phân tử <14nm (Hạn chế về thiết kế vật lý).
Trang 16Đánh giá khả năng lưu trữ trên bộ nhớ tương tự của Jim Gray
How Far Away is the Data?
Registers
On Chip Cache
On Board Cache Memory
2 Years
1 min
Sao diêm vương
2,000 Years Chòm tiên nữ
(ns)
Jim Gray Turing Award B.S Cal 1966 Ph.D Cal 1969!
Trang 17Nguyên lý về định vị và phân cấp bộ nhớ
Trang 18Xử lý song song
18
Trang 19Quan niệm mới
>1 instruction @ one time
e.g., 5 pipelined instructions
• Parallel Data
>1 data item @ one time
e.g., Add of 4 pairs of words
• Hardware descriptions
All gates functioning in parallel at same time
19
SmartPhone
Warehouse-Scale Computer
Software Hardware
Harness Parallelism &
Achieve High Performance
Logic Gates
Memory (Cache)Input/Output
A3+B3 A2+B2
A1+B1 A0+B0
Trang 2010/31/21 20
Luật Amdahl: Amdahl’s Law
Gene Amdahl Computer Pioneer
Trang 21Tiến trình tìm hiểu về kiến trúc máy tính
µProc 60%/yr (2X/1.5yr)
DRAM 9%/yr (2X/10 yrs)
1 10 100 1000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2
DRAM CPU
Processor-Memory Performance Gap:
Datapaths
IFetch Dcd Exec Mem WB
IFetch Dcd Exec Mem WB
IFetch Dcd Exec Mem WB
IFetch Dcd Exec Mem WB
H I r e g is t e r
2
0 1
3 4
Trang 22Cấu tạo của máy tính
Trang 23Cấu tạo bộ xử lý
Trang 24Bộ xử lý cơ bản: Bộ nhớ, Khối điều khiển,
Khối tính toán
Trang 25Các cấp độ diễn tả trừu tượng
Assembly Language Program (e.g., MIPS)
Machine Language Program (MIPS)
Hardware Architecture Description (e.g., block diagrams)
Trang 26Các khối xử lý cơ bản
Trang 27Bộ xử lý cơ bản: Bộ nhớ, Khối điều khiển, Khối
tính toán
Trang 291: Tải giá trị r0 (i) từ bộ nhớ (location 7)
Trang 302: Trừ 2 từ r0(i)
Trang 313: Kiểm tra nếu r1 bằng 0, nhảy khi điều
kiện đúng
Trang 324: Tăng r0 (i)
Trang 335: Tiếp tục vòng lặp
Trang 346: Trừ 2 từ r0(i)
Trang 357: Kiểm tra nếu r1 bằng 0, nhảy khi điều kiện đúng
Trang 368: Tăng r0 (i)
Trang 379: Tiếp tục vòng lặp
Trang 3810: Trừ 2 từ r0(i)
Trang 3911: Kiểm tra r1 bằng 0, nhảy khi điều kiện đúng.
Trang 4012: Dừng chương trình vì lệnh 5 không hợp lệ!
Trang 41Hiểu chi tiết về bộ xử lý MIPS
Trang 42Qu an tr ọn
g đ
ối v
ới 1 ng
ườ
i sử
dụ ng
Thời gian đáp ứng (thời gian thực
thi) – là khoảng thời gian giữa thời
điểm bắt đầu thực hiên và thời điểm
hoàn thành một nhiệm vụ
Thời gian đáp ứng (thời gian thực
thi) – là khoảng thời gian giữa thời
điểm bắt đầu thực hiên và thời điểm
hoàn thành một nhiệm vụ
•
Qu an tr ọn
g đ
ối v
ới n gư
ời đ iều
hà nh tr un
g t âm d
ữ liệ u
Thông lượng (dải thông) – là tổng số
nhiệm vụ có thể được hoàn thành
trong 1 khoảng thời gian
Thông lượng (dải thông) – là tổng số
nhiệm vụ có thể được hoàn thành
trong 1 khoảng thời gian
Đánh giá hiệu năng
Trang 43Cải thiện hiệu năng
Để tối đa hóa hiệu năng, cần tối thiểu hóa thời gian thực hiện
Để tối đa hóa hiệu năng, cần tối thiểu hóa thời gian thực hiện
Giảm thời gian đáp ứng thường
sẽ tăng thông lượng
Giảm thời gian đáp ứng thường
sẽ tăng thông lượng
Hiệu năng và thời gian thực thi có quan hệ nghịch đảo
Hiệu năng và thời gian thực thi có quan hệ nghịch đảo
x
ime ExecutionT
ime ExecutionT e
Performanc
e Performanc
Trang 44Thời gian dùng để tính hiệu
Thời gian CPU người dùng
Thời gian CPU thực hiện
mã lệnh của chương trình
Thời gian CPU hệ thống
Thời gian CPU dành cho hệ điều hành thực hiện các nhiệm vụ cần thiết cho CT của người dùng
Cách tính hiệu năng
c cpu
c
Trang 45Đơn vị đo hiệu năng theo các phân mức
Compiler
Programming
LanguageApplication
Seconds per program
Useful Operations per second
Trang 46.
Combination Logic
Cycle
Hầu hết các máy tính hiện đại không đổi và lặp đi lặp lại chu kỳ
Trang 47Số xung đồng hồ
HUST-FET, 10/31/21
• Số xung đồng hồ thực hiện 1 chương trình:
– I là số chỉ thị máy cần thực hiện trong chương trình
– CPI (eng Clock cycles per Instruction) là số xung đồng hồ trung bình cần để thực thi 1 chỉ thị máy,
• CPI có thể dùng để so sánh các máy tính khác nhau cùng triển khai 1 kiến trúc tập lệnh
• Ví dụ: có 3 loại lệnh A, B, C khác nhau trong 1 kiến trúc tập lệnh Mỗi lệnh trong từng loại có CPI tương ứng:
CPI for this instruction class
CPI I
Trang 48CPI hiệu dụng (trung bình)
• CPI hiệu dụng được tính bằng cách xét tất cả các lớp chỉ thị có trong chương trình và lấy trung bình với trọng số là tỉ
lệ xuất hiện của lớp chỉ thị trong chương trình
Trang 49So sánh dựa trên CPI
• Khi 2 máy tính A, B cùng thực hiện 1 chương trình, chúng cùng thực hiện I chỉ thị
• Do đó:
• Máy A nhanh hơn máy B:
Máy tính A và B cùng triển khai 1 kiến trúc tập lệnh Máy A có chu kỳ đồng hồ là 250ps, và CPI hiệu dụng cho 1 chương trình P là 2,0 Máy B có chu kỳ đồng hồ là 500ps, và CPI hiệu dụng cho cùng 1 chương trình P là 1,2 Máy tính nào nhanh hơn và nhanh hơn bao nhiêu?
I ps
I T
CPI I
T
I ps
I T
CPI I
T
B c B
B cpu
A c A A
2 , 1
500 250
0 , 2
, ,
, ,
Performance B = T cpu,B
T cpu,A = 600 × I
500 × I = 1, 2
Trang 50Ví dụ
• Công thức để tính thời gian CPU, khi máy tính A thực hiện chương trình:
• Số chu kỳ máy tính A dùng để thực hiện chương trình:
• Số chu kỳ máy tính B dùng để thực hiện chương trình:
• Tốc độ đồng hồ của máy tính B:
• Hiệu năng có thể cải thiện bằng cách giảm số chu kỳ 1 xung đồng hồ hoặc giảm số chu kỳ cần thiết để thực hiện chương trình
Máy tính A với xung đồng hồ 2GHz thực hiện 1 chương trình hết 10 giây Để thực hiện chương trình đó trong 6 giây bằng máy tính B, ta cần tăng tốc độ xung đồng hồ của máy B Tuy nhiên, tăng tốc độ xung đồng hồ cũng làm tăng số chu kỳ cần thiết lên 1,2 lần Xác định tốc độ xung đồng hồ máy tính B
A c
A A
cpu
f
C T
, , =
cycles 10
20 10
C f
B cpu
B B
6
10 20
2 ,
,
Trang 51So sánh đoạn mã chương trình
• Người thiết kế một máy tính triển khai kiến trúc tập lệnh gồm 3 loại chỉ thị A, B, C được CPI như sau:
• Với 1 câu lệnh ở ngôn ngữ bậc cao, người viết trình biên dịch có thể lựa chọn 2 đoạn chỉ thị máy gồm có tần suất các loại chỉ thị như sau:
• Đoạn mã nào gồm nhiều chỉ thị hơn? Đoạn mã nào nhanh hơn? Tính CPI của từng đoạn mã.
Trang 52So sánh đoạn mã chương trình
• Đoạn mã 1 dùng 5 chỉ thị, đoạn mã 2 dùng 6 chỉ thị
• Số xung đồng hồ để thực hiện mỗi đoạn mã được tính như sau:
• Trong đó I1,i, I2,i là số lượng chỉ thị loại i trong đoạn mã 1 và 2 tương ứng
• Như vậy đoạn mã 1 chậm hơn đoạn mã 2, mặc dù dùng ít chỉ thị hơn
10 )
2 3 1 2 2 1 ( ) (
,23
12
,13
11
=
× +
× +
× +
i
i i
i
I CPI C
I CPI C
Trang 53Các yếu tố ảnh hưởng đến hiệu năng
Trang 54Kiến trúc máy tính
Computer architecture
To improve is to change; to be perfect is to change often.
Winston Churchill
Trang 55Chương 2: Kiến trúc tập lệnh
Trang 56Kiến trúc tập lệnh
MIPS,MDMX, MIPS-32, MIPS-64
instruction set
software
hardware
Trang 57Chu kỳ thực thi lệnh cơ bản
Obtain instruction from program storage
Determine required actions and instruction size
Locate and obtain operand data
Compute result value or status
Deposit results in register or storage for later use
Determine successor instruction
Trang 59Thực thi lệnh
Today we’re going to learn the details!
Trang 60Kiến trúc Princeton (Von Neumann)
- Data and Instructions mixed in same
Trang 61Các kiểu toán hạng cơ bản
Declining cost of registers
Trang 62So sánh số lượng toán hạng
Thực thi phép toán (C = A + B) với các kiểu toán hạng khác nhau
Stack Accumulator
Register (load-store)
Register (register-memory)
Load R1,AAdd R1,B
Cycle
Seconds n
Instructio
Cycles ns
Instructio e
Performanc ime
Trang 63So sánh số lượng các chỉ thị
Trang 64Kích thước toán hạng (Operand)
Frequency of reference by size
Trang 65Tập thanh ghi trong MIPS
32 Thanh ghi đa dụng.
– R0…R31 or $0…$31
– Các biến phải lưu trên thanh ghi
Một số trường hợp đặc biệt.
– R0 luôn có giá trị zero (0)
– R29 là thanh ghi con trỏ ngăn xếp
– R31 được sử dụng cho thủ tục quay lại địa chỉ
Một số thanh ghi đặc biệt.
– PC (Program Counter): Thanh ghi lệnh hiện tại
– HI & LO kết quả của phép nhân
– Thanh ghi dấu phẩy động
– Một số thanh ghi điều khiển (kiểm soát lỗi hoặc trạng thái)
Câu hỏi: Tại sao giá trị thanh
Trang 66Bộ nhớ là một mảng 1 chiều lưu trữ dữ liệu
• Mỗi ô nhớ có kích thước 1 byte (8 bits)
• Địa chỉ ô nhớ được xác định theo địa chỉ byte
Địa chỉ bộ nhớ được đánh chỉ số trên mảng
Trang 67Các kiểu dữ liệu trong MIPS được định nghĩa là 1-byte hoặc 1-word
– Một từ gồm 32 bits = 4 bytes
– 232 bytes = 230 words: addresses 0, 4, 8, …
Câu hỏi: địa chỉ của một từ được xác định như thế nào ?
Tổ chức bộ nhớ
Địa chỉ Alignment : Tạo trên 4 byte (word) ở đường biên (e.g., 0, 4, 8, 12…)
– Dữ liệu được lưu trữ ở địa chỉ byte chia hết cho kích thước
Trang 68Ánh xạ địa chỉ theo byte: Endianess
Little Endian: address of least significant byte = word address (xx00 = Little End of word)
Intel 80x86, DEC Vax, DEC Alpha (Windows NT)
Big Endian
Little Endian
Big Endian: address of most significant byte = word address (xx00 = Big End of word)
IBM 360/370, Motorola 68k, MIPS, Sparc, HP PA
Trang 69Ánh xạ địa chỉ theo tuyến : Alignment
Alignment: require that objects fall on address that is multiple of their size.
0 1 2 3
Aligned
Not Aligned
Trang 70Dạng chỉ thị MIPS và các chế độ đánh địa chỉ
immed
registerRegister (direct)
Trang 71Thống kê các kiểu địa chỉ
Trang 72Ví dụ: Tập lệnh MIPS
Định dạng trường lệnh 3 toán hạng :
Complex operation many instructions with temporary values.
Complex operation many instructions with temporary values.
Trang 73– Move (register to register)
– Load (memory to register)
– Store (register to memory)
Điều khiển dữ liệu
– Branch (có điều kiện, e.g., <, >, ==) – Jump (không điều kiện, e.g., goto)
Trang 74Bảng tham khảo định dạng lệnh
Trang 75Các lệnh thực thi
Phép toán (Data operations)
– Số học (add, multiply, subtract, divide, …)
– Logic (and, or, not, xor, …)
Dịch chuyển dữ liệu (Data transfer)
– Move (register to register)
– Load (memory to register)
– Store (register to memory)
Rẽ nhánh (Sequencing)
– Branch (conditional, e.g., <, >, ==)
– Jump (unconditional, e.g., goto)
Trang 76Các phép toán
1. Program Counter (PC) lưu trữ địa chỉ lệnh.
2. Các lệnh được nạp từ bộ nhớ vào thanh ghi lệnh.
3. Bộ điều khiển giải mã lệnh và báo cho ALU và tệp thanh
Trang 77Ví dụ về lệnh: Add/sub (1 of 2)
Trang 78Ví dụ về lệnh: Add/sub (2 of 2)
Bộ đếm chương trình (PC) nạp
lệnh từ thanh ghi lệnh
Control báo cho ALU và tệp thanh
ghi (Register File) phải làm gì
ALU ghi kết quả vào Register File.
Bộ đếm chương trình (PC) nạp
lệnh từ thanh ghi lệnh
Control báo cho ALU và tệp thanh
ghi (Register File) phải làm gì
ALU ghi kết quả vào Register File.
Trang 80Dịch chuyển dữ liệu
1 ALU tính toán ra địa chỉ
2 Địa chỉ gửi tới thanh ghi địa chỉ (Memory
Address Register)
3 Kết quả xác định hướng dịch chuyển đi/ đến
được lưu trữ trên thanh ghi dữ liệu bộ nhớ
(Memory Data Register)
4 Dữ liệu từ bộ nhớ có thể được ghi lại trên
tệp thanh ghi (Register File) hoặc ghi vào bộ
nhớ.
Trang 81Lệnh tải từ: Load word (1 of 2)
Trang 82Lệnh tải từ: Load word (2 of 2)
Sử dụng địa chỉ từ tệp
thanh ghi để tải dữ liệu từ
bộ nhớ
Trang 83Lệnh tải từ với độ lệch địa chỉ.
Độ lệch được thêm vào địa chỉ như là
một phần của các câu lệnh lw/sw
Trang 84Lệnh lưu từ: Store word
Để thực hiện lưu trữ cần thông tin:
Địa chỉ (từ ALU), dữ liệu (từ thanh
ghi)
Trang 85Địa chỉ của A vào R5
Lưu giá trị mới của A vào R6
Store : Mem[R5]←R6
Trang 86Các lệnh điều khiển rẽ nhánh
Lệnh điều khiển rẽ nhánh
– Câu lệnh nào được thực thi tiếp theo?
– Thay đổi luồng điều khiển chương trình “control flow”
Câu lệnh điều kiện trong MIPS
– bne R0, R1, Label branch if not equal to label
– beq R3, R4, Label branch if equal to label
Example:
Trang 87Lệnh nhảy không điều kiện
Lệnh nhảy không điều kiện: jump
– j Label jump to label
Example:
Trang 88Các chỉ thị rẽ nhánh
Thay đổi đường dữ liệu chương trình → Thay đổi bộ đếm chương trình PC
– j jump Nhảy tới nhãn không điều kiện
– bne branch not equal Nhảy tới nhãn nếu giá trị các thanh ghi không bằng nhau
Ví dụ: if (a==b) c=1; else c=2;
Trang 89Xác định địa chỉ rẽ nhánh có điều kiện
HUST-FET, 10/31/21 89
?
Add 4
32
Trang 90Lệnh nhảy không điều kiện
HUST-FET, 10/31/21 90
Lệnh nhảy không điều kiện:
Trang 91Vòng lặp
Trang 92Địa chỉ trong lệnh rẽ nhánh và lệnh nhảy
Question:
Sử dụng lệnh nhảy bne/beq với
khoảng cách bao nhiêu?
Địa chỉ là 32 bits! Điều khiển bằng cách nào?
– Xem xét bne/beq như là độ lệch tương đối (relative offsets) (cộng với giá trị PC hiện thời) – Xem xét j như là một giá trị tuyệt đối (absolute value) (thay thế 26 bits của PC)
Trang 93Ví dụ nhảy địa chỉ: loops
Trang 94Biên dịch thành mã máy
Mã hóa và các định dạng
Trang 95Định dạng lệnh (mã máy)
Ngôn ngữ máy
– Máy tính không hiểu được chuỗi ký tự sau “add R8, R17, R18”
– Các lệnh phải được chuyển đổi thành ngôn ngữ máy(1s and 0s)
Ví dụ:
add R8, R17, R18 → 000000 10001 10010 01000 00000 100000
Các trường lệnh MIPS
• opcode mã lệnh xác định phép toán (e.g., “add” “lw”)
• rs chỉ số thanh ghi chứa toán hạng nguồn 1 trong tệp thanh ghi
• rt chỉ số thanh ghi chưa toán hạng nguồn 2 trong tệp thanh ghi
• rd chỉ số thanh ghi lưu kết quả
• shamt Số lượng dịch(cho chỉ thị dịch)
• funct mã chức năng thêm cho phần mã lệnh (add = 32, sub =34)
Trang 96Định dạng lệnh MIPS
• MIPS có 3 dạng chỉ thị :
– R: operation 3 registers no immediate – I: operation 2 registers short immediate – J: jump 0 registers long immediate
Câu hỏi: Lệnh cộng tức thời (addi) cần bao
nhiêu bit để lưu giá trị hằng số?
Trả lời:
I-format: 5+5+6 bits = 16 bits
Giá trị nằm trong khoảng
Từ -32,768 đến +32,767
Trang 97Tổng kết các lệnh MIPS
HUST-FET, 10/31/21 97
Arithmetic
(R & I format)
shift left logical 0 & 00 sll $s1, $s2, 4 $s1 = $s2 << 4shift right logical 0 & 02 srl $s1, $s2, 4 $s1 = $s2 >> 4 (fill with zeros)shift right arithmetic 0 & 03 sra $s1, $s2, 4 $s1 = $s2 >> 4 (fill with sign bit)
and immediate c and $s1, $s2, ff00 $s1 = $s2 & 0xff00
load upper immediate f lui $s1, 0xffff $s1 = 0xffff0000
Trang 98Tổng kết các lệnh MIPS
HUST-FET, 10/31/21 98
Data
transfer
(I format)
Cond branch
(I & R format)
set on less than immediate
a slti $s1, $s2, 100 if ($s2<100) $s1=1; else $s1=0
set on less than 0 & 2a slt $s1, $s2, $s3 if ($s2<$s3) $s1=1; else $s1=0