Tài liệu Kiến trúc máy tính - Bài 1: Giới thiệu: 1KIẾN TRÚC MÁY TÍNH
Nguyễn Hồng Sơn
2Bài 1 GIỚI THIỆU
Kiến trúc & Tổ chức máy tính
3Tổ chức và Kiến trúc
Hai thuật ngữ nhằm mô tả một hệ thống máy tính.
Kiến trúc đề cập đến các thuộc tính mà người lập
trình nhận thấy được, ảnh hưởng trực tiếp đến thực thi
chương trình (Instruction set, số bit biểu diễn data
type, cơ cấu I/O, addressing)
Tổ chức máy tính đề cập đến các đơn vị hoạt động và
sự liên kết giữa chúng, thực hiện các đặc tả kiến trúc
(chi tiết phần cứng, control signals, interfaces,
memory technology)
Ví dụ xây dựng multiply instruction
4Cấu trúc và Chức năng
Cấu trúc: cụ thể hóa các thành phần và các
mối liên hệ giữa các thành phần, là hiện
thực của tổ chức máy tính.
Chức năng: sự hoạt động của mỗi thành
phần trong cấu trúc.
5Chức năng máy tính
Data processing
Data storage
Data movement (I/O, peripheral,
communicati...
235 trang |
Chia sẻ: Khủng Long | Lượt xem: 1109 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Kiến trúc máy tính - Bài 1: Giới thiệu, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
1KIEÁN TRUÙC MAÙY TÍNH
Nguyeãn Hoàng Sôn
2Baøi 1 GIÔÙI THIEÄU
Kieán truùc & Toå chöùc maùy tính
3Toå chöùc vaø Kieán truùc
Hai thuaät ngöõ nhaèm moâ taû moät heä thoáng maùy tính.
Kieán truùc ñeà caäp ñeán caùc thuoäc tính maø ngöôøi laäp
trình nhaän thaáy ñöôïc, aûnh höôûng tröïc tieáp ñeán thöïc thi
chöông trình (Instruction set, soá bit bieåu dieãn data
type, cô caáu I/O, addressing)
Toå chöùc maùy tính ñeà caäp ñeán caùc ñôn vò hoaït ñoäng vaø
sự lieân keát giöõa chuùng, thöïc hieän caùc ñaëc taû kieán truùc
(chi tieát phaàn cöùng, control signals, interfaces,
memory technology)
Ví duï xaây döïng multiply instruction
4Caáu truùc vaø Chöùc naêng
Caáu truùc: cuï theå hoùa caùc thaønh phaàn vaø các
mối lieân heä giữa các thành phần, laø hieän
thöïc cuûa toå chöùc maùy tính.
Chöùc naêng: sự hoaït ñoäng cuûa moãi thành
phần trong caáu truùc.
5Chöùc naêng maùy tính
Data processing
Data storage
Data movement (I/O, peripheral,
communication)
Control
6Cô caáu
vaän chuyeån
data
Cô caáu
ñieàu kieån
Phöông tieän
xöû lyù data
Phöông tieän
löu tröõ data
Nguoàn vaø ñích cuûa data
7
8Caùc thaønh phaàn trong caáu truùc
maùy tính
Coù boán thaønh phaàn chính:
•CPU: Ñieàu khieån caùc hoaït ñoäng vaø thöïc hieän caùc chöùc
naêng xöû lyù data
•Main memory: Löu tröõ data
•I/O: vaän chuyeån data giöõa maùy tính vôùi beân ngoaøi
•System interconnection: cung caáp cô cheá truyeàn thoâng
giöõa ba thaønh phaàn treân
9Maùy tính
•Löu tröõ
•Xöû lyù
Ngoaïi vi
Communication line
MT
System
Interconnection
Main
memory
I/O
CPU
10
Moät maùy tính coù theå coù moät hay nhieàu
CPU
Dung löôïng boä nhôù laø tuøy choïn
Cô caáu I/O coù qui moâ khaùc nhau tuøy theo
nhu caàu
11
Thaønh phaàn phöùc taïp nhaát laø CPU
Control unit
ALU (Arithmetic and Logic Unit)
Register
CPU Interconnection
12
CPU
CPU bus
Registers
ALU
Control unit
CU
Control Unit
Regisers
vaø Decoders
Conrol
memory
Sequencing
logic
13
Sô löôïc lòch söû phaùt trieån
Theá heä thöù nhaát:
Ñeøn chaân khoâng (vacuum tubes)
ENIAC
Von Neumann/ Alan Turing
14
Máy tính ENIAC
15
Sô löôïc lòch söû phaùt trieån:Máy tính
ENIAC
ENIAC (Electronic Numerical Integrator and Computer) là
máy tính điện tử số đầu tiên do Giáo sư Mauchly và người
học trò Eckert tại Đại học Pennsylvania thiết kế vào năm
1943 và được hoàn thành vào năm 1946. Đây là một máy
tính khổng lồ với thể tích dài 20 mét, cao 2,8 mét và rộng
vài mét. ENIAC bao gồm: 18.000 đèn điện tử, 1.500 công
tắc tự động, cân nặng 30 tấn, và tiêu thụ 140KW giờ. Nó có
20 thanh ghi 10 bit (tính toán trên số thập phân). Có khả
năng thực hiện 5.000 phép toán cộng trong một giây. Công
việc lập trình bằng tay bằng cách đấu nối các đầu cắm điện
và dùng các ngắt điện.
16
Sô löôïc lòch söû phaùt trieån(tt)
Theá heä thöù hai:
Transistor
Multiplexer
Laäp trình möùc cao
Phaàn meàm heä thoáng
17
Sô löôïc lòch söû phaùt trieån (tt)
Theá heä thöù 3:
Maïch tích hôïp (Integrated Circuits)
SSI, MSI
Microelectronics
IBM/360, PDP-8( minicomputer ñaàu tieân, duøng bus)
Luaät Moore
Số lượng transistors trên một microchip tăng lên gấp đôi
sau mỗi 18-24 tháng.
Tốc độ microprocessor tăng lên gấp đôi sau mỗi 18-24
tháng.
Giá thành trên một microchip giảm một nửa sau mỗi 18-24
tháng
Tham khảo:
18
Sô löôïc lòch söû phaùt trieån (tt)
Theá heä thöù 4:
LSI, VLSI, ULSI
Semiconductor Memory
Microprocessor
Caùc theá heä sau
19
20
21
Sơ đồ kiến trúc của PIII
22
Intel Core 2 Dual
23
Naâng cao chaát löôïng
Toác ñoä boä vi xöû lyù
Döï ñoaùn nhaùnh
Phaân tích luoàng soá lieäu
Thöïc thi coù döï baùo
Caân ñoái hieäu suaát
Caûi thieän toå chöùc vaø caáu truùc chip.
24
25
26
Giaûi phaùp caân ñoái hieäu suaát
Boä nhôù lôùn hôn
Cache
Lieân keát CPU-memory toác ñoä cao
Thieát keá
Toác ñoä giöõa caùc thieát bò
Caùc öùng duïng vaø thieát bò ngoaïi vi
27
Caûi thieän toå chöùc vaø caáu truùc
chip
Toác ñoä vaø clock rate
Kích thöôùc vaø toác ñộ cache
Kieán truùc song song
Caùc heä quaû
Coâng suaát
Treã (RC delay)
Treã truy xuaát boä nhôù (Memory latency)
28
Baøi 2
STORED-PROGRAM VAØ
GENERAL-PURPOSE COMPUTER
29
Söï xuaát hieän stored-program vaø
general-purpose hardware
Moät taäp nhoû caùc linh kieän logic cô baûn coù theå keát
hôïp vôùi nhau theo caùc caùch khaùc nhau ñeå löu tröõ
döõ lieäu nhò phaân vaø thöïc hieän caùc pheùp toaùn soá
hoïc vaø luaän lyù treân döõ lieäu ñoù.
Khi caàn moät tính toaùn naøo ñoù, moät caáu hình keát
noái caùc thaønh phaàn logic ñöôïc thieát keá vaø thöïc
hieän. Coù theå hieåu ñoù chính laø daïng laäp trình.
30
Tuaàn töï caùc chöùc naêng
soá hoïc vaø luaän lyù
Phaàn cöùng ñöôïc xaây döïng
töø caùc thaønh phaàn logic
Data
Caùc
keát
quaû
Laäp trình phaàn cöùng (hardware programming)
31
Söï xuaát hieän stored-program
vaø general-purpose hardware (tt)
Neáu taát caû caùc öùng duïng ñeàu thöïc hieän
baèng hardwired progam => baát tieän vaø
khaû naêng cuûa maùy tính raát haïn cheá
Xaây döïng caùc chöùc naêng soá hoïc vaø luaän lyù
toång quaùt (general-purpose hardware)
Hoaït ñoäng döïa vaøo tín hieäu ñieàu khieån
32
Bieân dòch
Caùc chöùc naêng
soá hoïc vaø luaän lyù
toång quaùt
Caùc maõ leänh
(instruction codes)
Taäp tín hieäu
ñieàu khieån
DATA Caùc keát quaû
33
Phaùt sinh tín hieäu ñieàu khieån
Toaøn boä chöông trình laø moät tuaàn töï goàm
nhieàu böôùc.
Moãi böôùc caàn tieán haønh moät vaøi pheùp soá
hoïc vaø luaän lyù treân data naøo ñoù.
Moãi böôùc caàn moät taäp tín hieäu töông öùng
Moät code duy nhaát cho moät taäp tín hieäu coù
theå
Moät segment töông öùng trong phaàn cöùng
toång quaùt chaáp nhaän moät taäp tín hieäu ñieàu
khieån ñöôïc phaùt ra.
34
Phaùt sinh tín hieäu ñieàu khieån(tt)
Laäp trình baây giôø: thay vì noái daây phaàn
cöùng cho moãi chöông trình môùi, chæ caàn
cung caáp moät tuaàn töï môùi cuûa caùc code
Moãi code thöïc ra laø moät instruction, ñöôïc
phaàn bieân dòch tieáp nhaän vaø phaùt ra taäp tín
hieäu ñieàu khieån töông öùng.
Tuaàn töï caùc instruction ñoù laø software
35
Data vaø instruction ñöôïc löu tröõ trong moät
boä nhôù ñoïc-ghi.
Noäi dung trong boä nhôù ñöôïc ñònh vò theo
vò trí, khoâng caàn bieát kieåu data laø gì.
Thöïc thi chöông trình theo kieåu tuaàn töï, töø
instruction naøy ñeán instruction keá tieáp.
Ba khaùi nieäm cô baûn veà stored-program
36
I/O module
Data vaø instruction phaûi ñöôïc ñöa vaøo
trong heä thoáng qua module nhaäp
Caàn laáy hay thoâng baùo keát quaû tính toaùn
thoâng qua module xuaát
Goïi chung laø I/O module
37
Boä nhôù chính
Thieát bò nhaäp ñöa data vaø inst vaøo theo
tuaàn töï, nhöng chöông trình khoâng phaûi
thöïc thi theo tuaàn töï moät caùch cöùng nhaéc.
Hoaït ñoäng tính toaùn coù theå phaûi truy xuaát
nhieàu döõ kieän hôn taïi moät thôøi ñieåm theo
moät tuaàn töï khoâng theå döï ñoaùn ñöôïc.
=>caàn coù nôi löu tröõ taïm thôøi caû data vaø inst,
ñoù laø boä nhôù chính
38
CPU
MAR
MBR
I/O AR
I/O BR
:
Instruction
Instruction
Instruction
:
Data
Data
Boä nhôù
0
1
2
:
Buffer
I/O module
39
Bài 3
KIẾN TRÚC VON NEUMANN
VÀ KIẾN TRÚC HARVARD
40
KIẾN TRÚC VON NEUMANN
ENIAC (Electronic Numerical Integrator And
Computer) laø maùy tính ñieän töû daïng general-
purpose ñaàu tieân.
ENIAC toû ra naëng neà vaø ñôn ñieäu
Caûi tieán töø yù töôûng stored-program, nhaø toaùn hoïc
John von Neumann thieát keá ra maùy tính môùi goïi
laø IAS (Institute for Advanced Studies) laø khuoân
maãu cho taát caû caùc maùy tính general-purpose sau
naøy.
41
42
Boä nhôù
chính
ALU
Program
Control
Unit
Thieát bò
I/O
Caáu truùc cuûa maùy tính IAS
43
Maùy von Neumann
Main memory: löu tröõ caû data vaø instruction
ALU: thao taùc treân soá lieäu nhò phaân
PCU: bieân dòch vaø taïo ñieàu kieän thöïc thi caùc
inst
Thieát bò I/O ñöôïc ñieàu khieån bôûi CU
44
Maùy von Neumann
Boä nhôù chöùa 1000 vò trí hay töø nhôù (word),
moãi word coù 40 bit.
Moãi soá (data)ñöôïc bieåu dieãn goàm 1bit daáu
vaø 39 bit giaù trò
Moãi word coù theå chöùa hai inst 20 bit
Moät inst goàm 8 bit op code vaø 12 bit ñòa
chæ
45
Giaù trò
Op code addr Op code addr
0 7 8 19 20 28 39
0 1 39
Sign
bit
Number word
Instruction word
Instruction traùi Instruction phaûi
46
AC MQ
Caùc maïch
soá hoïc-luaän lyù
MBR
Thieát bò
I/O
Main
memory
IBR
IR
PC
MAR
Caùc maïch
ñieàu khieån
ALU
Central Processing Unit
: control signals
Program Control Unit
address
Instructions
vaø data
KIEÁN TRUÙC MÔÛ ROÄNG CUÛA IAS
47
Maùy von Neumann (tt)
Conrol Unit ñieàu haønh IAS baèng caùc laáy caùc inst
töø boä nhôù vaø thöïc thi moãi luùc moät inst.
Caû ALU vaø PCU ñeàu coù caùc vò trí löu tröõ goïi laø
caùc thanh ghi:
MBR (Memory Buffer Register)
MAR (Memory Address Register)
IR (Instruction Register)
IBR (Instruction Buffer Register)
PC (Program Counter)
AC&MQ (Accumulation & Multiplier-Quotient)
48
start
Inst keá
trong IBR? MAR PC
MBRM(MAR)
Coù yeâu caàu
instruction traùi?
IRIBR(0:7)
MARIBR(8:19)
IRMBR(20:27)
MARMBR(28:39)
IBRMBR(20:39)
IRMBR(0:7)
MARMBR(8:19)
PCPC+1
AC≥0?
PCMAR
ACMBR
MBRM(MAR)
ACAC+MBR
MBRM(MAR)
y n
n y
y
n
Giaûi maõ inst trong IR
ACM(X) Goto M(X,0:19) If AC ≥0 then
goto M(X,0:19
ACAC+M(X)
Chu kyø
laáy inst
Chu kyø
thöïc thi
49
Kieán truùc Hardvard
Kieán truùc Harvard taùch rieâng boä nhôù löu tröõ chöông
trình vaø döõ lieäu. Ñoä roäng Bus chöông trình thay ñoåi
linh ñoäng vaø toái öu cho moät thieát bò ñaëc bieät naøo ñoù.
Ñoä roäng bus döõ lieäu thöôøng laø 8 hay 16 bit. Kieán truùc
naøy cho pheùp truy xuaát ñoàng thôøi caû chöông trình vaø
döõ lieäu.
Kieán truùc Harvard coù moät vaøi öu ñieåm: moät long
word inst chæ chieám moät vò trí nhôù, caùc single word
inst coù theå taêng toác xöû lyù vì maõ leänh vaø döõ lieäu lieân
quan ñeàu chöùa trong moät töø nhôù. Việc thöïc thi chæ thò
cuõng nhanh vì boä nhôù chöông trình vaø boä nhôù döõ lieäu
ñeàu coù theå truy xuaát ñoàng haønh.
Nhieàu DSP coù kieán truùc Hardvard
50
Kieán truùc Harvard
51
Kieán truùc Harvard
Moät soá CPU coù kieán truùc hoãn hôïp giöõa hai kieán truùc. Caáu
truùc beân trong core laø Harvard. Core cuûa CPU ñöôïc ñeäm
töø bus ngoøai qua moät cache toác ñoä cao vaø moät boä ñieàu
khieån cache. Ñeå naâng phaåm chaát, beân trong CPU taùch
bieät bus chöông trình vaø bus döõ lieäu, moãi bus ñeàu coù
cache rieâng.
Boä ñieàu khieån data cahe giaùm saùt bus ñeå caäp nhaät baûn
sao trong cache neáu caùc thieát bò khaùc treân bus thay ñoåi boä
nhôù chính. Tuy nhieân, boä nhôù chæ thò khoâng theå caäp nhaät,
chæ coù theå ñoïc chöông trình trong cache vaøø khoâng theå ghi
vaøo. Ñieàu naøy khieán cho kieán truùc Harvard khoâng theå
thöïc hieän self modifying code.
1Bài 4
KIẾN TRÚC TẬP CHỈ THỊ
ISA (Instruction Set Architecture)
Nguyễn Hồng Sơn
2Tập chỉ thị
Tập hợp các chỉ thị khác nhau mà bộ xử lý
có thể thực thi
3Các đặc trưng
Các thành phần của một chỉ thị
Biểu diễn chỉ thị
Loại chỉ thị
Số địa chỉ
Đặc trưng thiết kế
4Các thành phần
Mã lệnh (Operation code)
Toán hạng nguồn (Source operand)
Toán hạng đích (Result operand)
Bộ nhớ chính hay bộ nhớ ảo
Thanh ghi
Thiết bị I/O
Tham chiếu chỉ thị kế (Next instruction reference)
Tường minh
Không tường minh
5Biểu diễn chỉ thị
Một tuần tự bit
Biểu diễn mỗi thành phần như thế nào
Opcode Operand Operand
6Loại chỉ thị
Tính toán
Số học
Luận lý
Lưu trữ dữ liệu: memory
Di chuyển dữ liệu: I/O
Điều khiển: kiểm tra, rẽ nhánh, chuyển điều
khiển
7Ví dụ rẽ nhánh
8Gọi thủ tục
9Số lượng địa chỉ
Bao nhiêu địa chỉ được chứa trong một chỉ
thị
Địa chỉ được biểu diễn tường minh hay
không tường minh
địa chỉ bộ nhớ
thanh ghi, bộ tích lũy (accumulator)
chỉ thị không địa chỉ
10
Các đặc trưng thiết kế
Tác vụ của lệnh
Kiểu toán hạng
Các thanh ghi
Chế độ địa chỉ
11
Các kiểu toán hạng
Địa chỉ
Con số
nguyên (integer)
dấu chấm động (floating point)
thập phân, nhị phân
Ký tự
Luận lý
12
Tập chỉ thị được đo lường qua vài yếu tố
Kích thước lưu trữ mà chương trình cần
Độ phức tạp của tập chỉ thị cũng như độ phức tạp của
các tác vụ
Chiều dài của chỉ thị
Tổng số chỉ thị
Bao nhiêu thanh ghi và tổ chức các thanh ghi như thế
nào
13
Các cân nhắc thiết kế
Chỉ thị ngắn hay dài
Chiều dài cố định hay thay đổi (cố định dễ giải mã
nhưng lãng phí)
Tổ chức bộ nhớ (địa chỉ hóa theo byte hay không)
Chỉ thị có chiều dài cố định không nhất thiết phải cố
định số toán hạng (expanding opcode)
Chế độ địa chỉ hóa
Thứ tự lưu giữ các byte của các từ có nhiều byte như thế
nào (little endian và big endian)
14
15
Hỗ trợ lưu trữ bên trong CPU
Kiến trúc stack: dùng một stack để thực thi chỉ thị,
các toán hạng được ngầm định ở đỉnh stack, không
thể truy xuất ngẫu nhiên, khó sinh mã hiệu quả.
Kiến trúc accumulator: một toán hạng ngầm định
(không tường minh) trong accumulator, tối thiểu
độ phức tạp nhưng lưu lượng bộ nhớ lớn.
Kiến trúc thanh ghi mục đích tổng quát (GPR:
General Purpose Register): dùng một số thanh ghi,
truy xuất nhanh. Có hai đặc trưng chính: số lượng
toán hạng và cách thức địa chỉ hóa toán hạng
16
Chế độ địa chỉ (addressing mode)
Immediate addressing
Direct addressing
Indirect addressing
Register addressing
Register indirect addressing
Displacement addressing
Based addressing
Indexed addressing
Stack addressing
Các chế độ cải tiến
17
Địa chỉ tức thời
(Immediate addressing)
Giá trị tham chiếu nằm ngay trong chỉ thị
Không có tham chiếu bộ nhớ để lấy dữ liệu
Nhanh
Ví dụ
ADD 5
Cộng 5 vào nội dung của thanh ghi AC
5 là toán hạng
18
Địa chỉ trực tiếp (Direct addressing)
Toán hạng là địa chỉ của giá trị tham chiếu
Tham chiếu một vị trí bộ nhớ để truy xuất
dữ liệu
Ví dụ
ADD 3BF
Cộng nội dung của ô nhớ 3BF với nội dung
trong AC
3BF là địa chỉ hiệu quả (effective address)
19
Nội dung tham chiếu
Opcode Address
Memory
3BF
20
Địa chỉ gián tiếp (indirect addresing)
Toán hạng là địa chỉ của con trỏ chỉ đến dữ
liệu
Địa chỉ hiệu quả chính là con trỏ
Ví dụ
ADD 38F
Cộng nội dung tại ô nhớ có địa chỉ được chứa
trong ô nhớ 38F với nội dung trong AC
38F không phải là địa chỉ hiệu quả.
21
Opcode Address
3BF
Nội dung tham chiếu
Memory
38F
3BF
22
Địa chỉ thanh ghi (Register addressing)
Toán hạng là tên thanh ghi (địa chỉ thanh
ghi)
Địa chỉ hiệu quả là thanh ghi
Truy xuất nhanh
Ví dụ
ADD R1 cộng nội dung thanh ghi R1 với nội
dung của AC
23
opcode Địa chỉ thanh ghi
Nội dung tham chiếu
Các thanh ghi
24
Địa chỉ gián tiếp thanh ghi (register
indirect addressing)
Kết hợp địa chỉ thanh ghi và địa chỉ gián
tiếp
Dùng thanh ghi để chứa con trỏ chỉ đến vị
trí chứa giá trị tham chiếu
25
opcode Địa chỉ thanh ghi
con trỏ chỉ đến nội dung
tham chiếu
Các thanh ghi
Nội dung tham chiếu
Bộ nhớ
26
Địa chỉ dùng độ dời (displacement
addressing)
Phần toán hạng chứa hai giá trị:
Địa chỉ
Thanh ghi giữ độ dời (offset)
Địa chỉ hiệu quả = địa chỉ + độ dời
27
opcode thanh ghi địa chỉ
độ dời
Các thanh ghi
Nội dung tham chiếu
Bộ nhớ
28
Relative addressing
Từ displacement addressing nếu thanh ghi là PC
thì gọi là địa chỉ quan hệ (relative addressing);
Lấy nội dung từ ô nhớ tại vị trí "địa chỉ" tính từ
vị trí hiện hành được chỉ ra trong thanh ghi PC.
Ví dụ LD A
nạp nội dung từ ô nhớ A+(PC) vào thanh ghi AC
29
Địa chỉ dùng thanh ghi nền
(Base-register addressing)
Giá trị thứ nhất là độ dời
Thanh ghi chứa con trỏ chỉ đến địa chỉ nền
Thanh ghi có thể là tường minh hay không
tường minh (ngầm)
30
Indexed addresing
Giá trị địa chỉ trong chỉ thị chứa địa chỉ nền
Thanh ghi chứa độ dời (offset)
Địa chỉ hiệu quả= địa chỉ nền + độ dời
Thích hợp cho truy xuất mảng
Địa chỉ truy xuất = địa chỉ nền + độ dời trong
thanh ghi R
R++
31
Địa chỉ ngăn xếp (stack
addressing)
Các toán hạng được ngầm định trên đỉnh
stack
Ví dụ ADD
Lấy hai giá trị trên đỉnh stack và thực hiện
cộng hai giá trị với nhau
32
Các chế độ địa chỉ cải tiến
Có thể kết hợp các chế độ địa chỉ với nhau.
Ví dụ indirect indexed addressing, indirect
based register adressing ...
33
Bài tập
1. Giải thích và cho ví dụ các chế độ địa chỉ
cải tiến
-Indirect indexed addressing
-Indirect based register adressing
2. Tìm hiểu các chế độ địa chỉ trong máy
Pentium
1Bài 5
CẤU TRÚC BỘ XỬ LÝ VÀ
THỰC THI CHƯƠNG TRÌNH
Nguyễn Hồng Sơn
Công việc của CPU
CPU phải
Fetch instructions
Interpret instructions
Fetch data
Process data
Write data
2CPU với system bus
Cấu trúc bên trong của CPU
3Tổ chức các thanh ghi
CPU cần có các vùng nhớ tạm để làm việc,
gọi là các thanh ghi (registers)
Số lượng và chức năng thay đổi tùy vào
thiết kế của bộ xử lý.
Là một trong các quyết định thiết kế quan
trọng.
Mức cao nhất trong phân cấp bộ nhớ.
User-visible register
User-visible register là thanh ghi có thể được tham
chiếu qua ngôn ngữ máy, bao gồm các loại:
General Purpose: đa chức năng, chứa operand của
chỉ thị
Data: chỉ chứa data, không được dùng để tính toán
địa chỉ.
Address: dùng cho chế độ địa chỉ như segment
pointer, index register, stack pointer
Condition Codes: chứa các mã điều kiện (còn gọi là
các flag)
4Control & status register
Có một số thanh ghi được dùng để điều khiển
hoạt động của CPU
Program Counter
Instruction Decoding Register
Memory Address Register
Memory Buffer Register
Tất cả các thiết kế đều có một hay tập thanh
ghi gọi là PSW (Program Status Word)
PSW
PSW chứa các mã điều kiện cùng với các thông tin
trạng thái khác. Các field hay flag phổ biến gồm:
Sign
Zero
Carry
Equal
Overflow
Interrupt enable/disable
Supervisor: chỉ mode là user hay supervisor
5Supervisor mode
Các chỉ thị đặc quyền chỉ có thể thực thi
trong supervisor mode.
Vùng nhớ đặc biệt chỉ có thể truy xuất trong
supervisor mode
Được dùng bởi hệ điều hành
Không khả dụng đối với các chương trình
của user.
Ví dụ tổ chức thanh ghi
6 Một chương trình ñược thực thi gồm một
tập chỉ thị được lưu giữ trong bộ nhớ.
CPU coù nhiệm vụ thực thi từng chỉ thị được
chỉ ñịnh trong chương trình
Quùa trình xử lyù chỉ thị gồm coù hai bước:
CPU đñọc chỉ thị từ bộ nhớ
CPU thực thi chỉ thị, coù thể gồm một số hoạt
ñộng
Tổng Quan Thực thi chương trình
Thực thi chương trình
Chu kỳ chỉ thị (instruction cycle): Quá trình
xử lý cho một chỉ thị.
Chu kỳ lấy chỉ thị
Chu kỳ thực thi
7bắt đầu
lấy chỉ thị kế
thực thi chỉ thị
Treo máy
Chu kỳ lấy chỉ thị
Chu kỳ thực thi
Chu kỳ chỉ thị cơ bản
Chu kỳ lấy chỉ thị và thực thi
Bắt ñầu mỗi chu kỳ chỉ thị, CPU nạp chỉ thị từ bộ
nhớ
PC (program counter): laø thanh ghi hướng dẫn
chọn chỉ thị kế tiếp
Mặc ñịnh sau mỗi lần nạp, PC sẽ tăng một ñơn vị
(chỉ tới chỉ thị kế tiếp theo tuần tự trong chương
trình)
Chị thị được nạp vaøo thanh ghi IR (instruction
register)
8Chu kỳ lấy chỉ thị và thực thi
Chỉ thị tồn tại ở dạng mã nhị phân, chỉ cho CPU
biết noù phải laøm công việc gì.
CPU sẽ phiên dịch (giải mã lệnh) ñể nhận biết
công việc phải laøm.
Caùc công việc thường rơi vaøo một trong bốn
nhoùm:
CPU-Memory
CPU-I/O
Xử lyù data
Điều khiển: ví dụ thay ñổi tuần tự
Chu kỳ lấy chỉ thị và thực thi
Việc thực thi một chỉ thị cụ thể liên quan
đeán nhiều công việc.
Một chu kỳ thực thi coù thể coù nhiều tham
chiếu đến bộ nhớ.
Một chu kỳ thực thi coù thể coù nhiều tham
chiếu đến I/O
Một chu kỳ thực thi coù thể coù nhiều tham
chiếu đến bộ nhớ vaø cả I/O
9Các trạng thái trong một chu kỳ chỉ thị
(1)Tính toaùn ñịa chỉ của chỉ thị: xaùc ñịnh ñịa chỉ của chỉ thị kế tiếp,
thường laø cộng một hằng số vaøo ñịa chỉ của chỉ thị trước.
(2)Lấy lệnh
(3)Giải mã chỉ thị: phân tích ñể xaùc ñịnh công việc phải laøm vaø toaùn
hạng ñược duøng.
(4)Tính toaùn ñòa chỉ toaùn hạng: nếu công việc cần lấy thông số
(data) từ bộ nhớ hay I/O.
(5)Lấy toaùn hạng
(6)Xử lý trên dữ liệu theo công việc ñược chỉ ñịnh.
(7)Lưu toaùn hạng (data)
1 3
2
4 6 4
5 7CPU truy xuất
MM hay I/O
Hoạt đñộng
beân trong CPU
Vetor hay
string
chỉ thị
kế
nhiều
kết quả
nhiều
toán hạng
10
Các trạng thái
Trên một số maùy tính, một chỉ thị cuï thể chỉ
ñịnh một toaùn tử thực hiện trên một vector
(mảng một chiều) hay chuỗi của caùc kyù tự.
Điều naøy liên quan ñến lặp ñi lặp lại việc
lấy dữ liệu hay lưu trữ dữ liệu.
Ví dụ máy giả thuyết
Từ nhớ 16 bit
Instruction: 4 bit mã vaø 12 bit ñịa chỉ
Data: 1 bit dấu vaø 15 bit ñịnh lượng
Gồm coù caùc thanh ghi:
PC
IR
AC(accumulator): thanh ghi tạm
4 trong số 16 mã lệnh cuï thể
0001: nạp nội dung từ bộ nhớ vaøo AC
0010: ghi nội dung AC vaøo bộ nhớ
0101: cộng nội dung từ bộ nhớ với nội dung của AC.
0110: nhân nội dung từ bộ nhớ với nội dung của AC.
11
Ví dụ
Chỉ thị được cất giữ từ vị trí 0x300 trong bộ nhớ.
Trình baøy hoạt ñộng cộng nội dung tại ñịa chỉ 0x940 với
nội dung của 0x941, lưu kết quả tại 0x941.
Chương trình
Nạp nội dung từ 0x940 vaøo AC
Cộng nội dung của 0x941 với AC
Ghi nội dung của AC vaøo 0x941
Như vậy coù 3 chu kỳ nạp vaø 3 chu kỳ thực thi.
1940
5941
2941
0003
0002
1940
300300
301
302
940
941
PC
AC
IR
1940
5941
2941
0003
0002
0003
1940
300 PC
AC
IR
300
301
302
940
941
Bộ nhớ Các thanh ghi
12
1940
5941
2941
0003
0002
0003
5941
301300
301
302
940
941
PC
AC
IR
1940
5941
2941
0003
0002
0005
5941
301 PC
AC
IR
300
301
302
940
941
3h + 2h=5h
1940
5941
2941
0003
0002
0005
2941
302300
301
302
940
941
PC
AC
IR
1940
5941
2941
0003
0005
0005
2941
302 PC
AC
IR
300
301
302
940
941
13
Ví dụ 2
Trình bày các chu kỳ thực hiện phép tính
(3+2)*5 (5 tai 942), ghi kết quả tại 0x942
Tất cả sinh viên tự làm bài.
1940
5941
6942
0003
0002
1940
300300
301
302
303
940
941
942
PC
AC
IR
0005
2942
1940
5941
6942
0003
0002
1940
300300
301
302
303
940
941
942
PC
AC
IR
0005
2942
0003
14
Bài tập về nhà
Trình baøy tất cả caùc chu kỳ chỉ thị khi tính (2+3)*(3+4)
trên máy giả thuyết, cho 0004 chứa tại 0x942, ghi kết quả
tại 0x942.
Vieát tuaàn töï chæ thị thöïc hieän pheùp tính sau trên ma ùy IAS
(maùy tính Von Neumann)
(4+2)*5, ghi kết quả tại vị trí 202h
Hãy trình baøy taát caû caùc chu kyø chỉ thị khi thöïc hieän pheùp
tính trên.
Cho mã chöơng trình ñöơïc naïp vaøo boä nhớ baét ñaàu taïi vị
trí 100h vaø dữ lieäu ñược caát giữ baét ñaàu töø vị trí 200h.
1THỰC THI CHƯƠNG TRÌNH
CÓ NGẮT
BAØI 6
2Khái niệm Ngắt (Interrupt)
Hầu hết các máy tính đều có cơ chế cho phép ngắt quá
trình xử lý bình thường của CPU.
Có một số loại ngắt phổ biến:
Program: phát sinh bởi điều kiện, là kết quả thực thi một chỉ thị,
như tràn số học, chia 0
Timer: phát sinh bởi một bộ định thời trong CPU, cho phép OS
thực hiện một chức năng thông thường nào đó.
I/O: phát sinh bởi I/O controller, báo hoàn tất một công việc hay
thông báo một điều kiện lỗi nào đó.
Lỗi phần cứng
3Khái niệm Ngắt (Interrupt)
Ngắt thể hiện đặc tính cấu trúc
Các thiết bị ngoài hoạt động chậm hơn rất nhiều so
với CPU lãng phí CPU
Ví dụ hoạt động in
Ngắt là một phương thức nhằm cải thiện hiệu suất,
CPU sẽ chuyển đến thực thi chỉ thị khác giữa lúc
hoạt động I/O đang diễn ra.
4Chương trình I/O tiêu biểu
Một chương trình I/O gồm có ba phần cơ bản:
Tuần tự các chỉ thị nhằm chuẩn bị cho hoạt động I/O
thực sự
Lệnh I/O, khi gọi lệnh này chương trình phải đợi thiết
bị I/O thực hiện chức năng được yêu cầu. Chương trình
có thể đợi theo cách lặp lại thao tác kiểm tra để xác
định hoạt động I/O đã được thực hiện hay chưa.
Tuần tự chỉ thị làm thủ tục hoàn tất hoạt động I/O, ví dụ
dựng các cờ, thiết lập thông báo
5Hoạt động của chương trình
không ngắt
Call write
Call write
I/O command
Lộ trình thực thi
I/O programMain program
end
1
2
3
4
5
6Hoạt động của chương trình
không ngắt
Hoạt động I/O liên quan đến các thiết bị ngoài với
các thao tác cơ-điện mất nhiều thời gian.
Chương trình I/O phải đợi cho các thao tác I/O
hoàn tất.
=> Chương trình chính sẽ phải dừng lại mỗi khi gặp
một chỉ thị I/O (ví dụ write) trong một thời gian
khá dài.
7Hoạt động của chương trình có
ngắt
Call write
Call write
I/O command
Interrupt Handler
end
Thời gian thao tác
I/O kết thúc trước
khi gặp chỉ thị I/O
mới
1
2a
2b
3a
3b
4
5
Lộ trình thực thi
8Call write
Call write
I/O command
Interrupt Handler
end
Thời gian thao tác
I/O chưa kết thúc
đã gặp chỉ thị I/O
mới
Lộ trình thực thi
1
3
5
2
4
Hoạt động của chương trình
có ngắt
9Thủ tục ngắt tổng quát
Phát sinh tín hiệu ngắt: vi9 du: từ I/O module
Đáp ứng ngắt từ CPU: treo, chuyển
1
2
i
i+1
M
Chương trình Interrupt handler
phục hồi thực thi
Int req
10
Chu kỳ chỉ thị có ngắt
Chương trình chính không chứa mã lệnh
chuyên trách về ngắt
CPU & OS chịu trách nhiệm
Chu kỳ ngắt (interrupt cycle): CPU kiểm tra
phát hiện int req.
11
bắt đầu
nạp chỉ thị kế
thực thi
kiểm tra và
xử lý ngắt
kê9t thu9c
ngắt bị cấm
Cho phép ngắt
Chu kỳ ngắt
Chu kỳ thực thi
Chu kỳ lấy chỉ thị
12
1 3
2
4 6 4
5 7
CPU truy xuất
MM hay I/O
Hoạt động
bên trong CPU
Vetor hay
string
chỉ thị
kế
nhiều
kết quả
nhiều
toán hạng
kiểm tra
ngắt
xử lý
ngắt
Không
ngắt
Sơ đồ trạng thái trong chu kỳ chỉ thị
13
Hoạt động ngắt và Interrupt Handler
Nếu một ngắt xảy ra, bộ xử lý tiến hành:
Dừng hoạt động thực thi hiện hành và lưu ngữ cảnh.
Gán địa chỉ của Int handler vào thanh ghi PC
Thực thi diễn ra trên chương trình phục vụ ngắt
Int Handler ∈ OS
Xác định bản chất ngắt
Thực hiện các thao tác cần thiết
14
Đánh giá
1
4
5
2
4
5
3
cpu đợi
cpu đợi
Thao
tác I/O
Thao
tác I/O
1
4
2a
5
2b
4
3a
5
3b
Thao
tác I/O
Thao
tác I/O
15
1
4
5
2
4
5
3
cpu đợi
cpu đợi
Thao
tác I/O
Thao
tác I/O
1
4
2
5
4
3
5
Thao
tác I/O
Thao
tác I/O
cpu đợi
cpu đợi
16
Đa ngắt
Có thể có nhiều ngắt xảy ra đồng thời
Có hai giải pháp kiểm soát:
cấm các ngắt khác khi đang xử lý một ngắt nào
đó
xử lý ưu tiên
17
Chương trình chính Int Hand
Int Hand
18
Int Hand
Int Hand
19
Ví dụ
Ba thiết bị ngoại vi:
Line (ưu tiên 1) thời gian cần 10
Đĩa (ưu tiên 2) thời gian cần 10
In (ưu tiên 3) thời gian cần 30
bắt đầu lúc t=0, ngắt in lúc t=10, ngắt thông tin
lúc t=15, ngắt đĩa lúc t=20
Trình bày diễn biến của các ngắt?
20
t = 60
11
Bài 7
BIỂU DIỄN VÀ TÍNH TOÁN
SỐ HỌC TRONG MÁY TÍNH
Nguyễn Hồng Sơn
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 2
NỘI DUNG
ALU (Arithmetic and Logical Unit)
Biểu diễn và tính toán số nguyên (fixed
point)
Biễu diễn và tính toán số dấu chấm động
(floating point)
2Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 3
ALU
Thành phần thực hiện tất cả các phép tính
số học và luận lý
Tất cả các thành phần khác của máy tính
nhằm chuyển data vào ALU để nó xử lý và
sau đó lấy ra.
Được xây dựng từ các linh kiện điện tử số
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 4
ALU
ALU
control unit
Registers
flags
Registers
3Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 5
BIỂU DIỄN SỐ NGUYÊN
(fixed point)
Dùng số nhị phân
Integer có nghĩa là tập hợp tất cả các số
nguyên
Integer có thể là số dương hay số âm
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 6
Biễu diễn số nguyên:
biễu diễn theo dấu và độ lớn
Bit đầu tiên bên trái là bit dấu
0 = +
1 = -
Ví dụ +18 = 0 001 0010
-18 = 1 001 0010
Vấn đề biểu diễn số 0 ( +010=0 0000000; -010=1 0000000)
Tổng quát một số A gồm n bit
=−
=
=
∑
∑
−
=
−
−
=
−
2n
0i
1ni
i
2n
0i
1ni
i
1aunêa2
0aunêa2
A
4Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 7
Biễu diễn số nguyên:
biễu diễn bù hai
Cũng dùng bit đầu tiên bên trái làm bit dấu
Tổng quát số A có n bit
∑
−
=
−
− +−=
2n
0i
i
i
1n
1n a2a2A
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 81000--8
10011111-7
10101110-6
10111101-5
11001100-4
11011011-3
11101010-2
11111001-1
-1000-0
00000000+0
00010001+1
00100010+2
00110011+3
01000100+4
01010101+5
01100110+6
01110111+7
--+8
Biễn diễn bù 2Biễu diễn dấu và độ lớnBiễu diễn thập phân
5Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 9
Chuyển đổi qua lại giữa chiều dài
chuỗi bit khác nhau
Khi lưu một số có n bit vào m bit với m>n, số
đã bị chuyển đổi sang dạng số m bit
Với biểu diễn theo dấu và độ lớn:
Di chuyển bit dấu sang vị trí ngoài cùng bên trái
Điền bit 0 vào các chỗ trống
Với biểu diễn bù 2
Di chuyển bit dấu sang vị trí ngoài cùng bên trái
Điền bit dấu vào các chỗ trống
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 10
Tính toán số nguyên trong biểu
diễn bù 2: Lấy số đảo
Trong biểu diễn dấu và độ lớn để lấy số đảo của một số chỉ
cần đảo ngược bit dấu.
Trong số bù 2 làm hai bước:
Đảo ngược các bit
Cộng với 1
Ví dụ: +18= 0001 0010
1110 1101
+ 1
11101110 = -18
6Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 11
A và B là hai số đảo của nhau
∑
−
=
−
− +−=
2n
0i
i
i
1n
1n a2a2A
∑
−
=
−
− ++−=
2n
0i
i
i
1n
1n
a21a2B
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 12
Cộng và trừ số biểu diễn bù 2
Cộng và trừ như hai số không dấu
Phép trừ: X-Y = X+(-Y)
Bỏ qua bit nhớ vượt ra ngoài kích thước từ
nhớ
Khi hai số cùng âm hay cùng dương và kết
quả có dấu ngược lại thì có sự kiện tràn xảy
ra, ALU thông báo sự kiện để ngăn chặn.
7Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 13
Ví dụ
1001 = -7
+0101 = 5
1110 = -2
1100 = -4
+0100 = 4
10000 = 0
0011 = 3
+0100 = 4
0111 = 7
1100 = -4
+1111 = -1
11011 = -5
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 14
Tính tràn
0101 = 5
+0100 = 4
1001 = Tràn
1001 = -7
+1010 = -6
10011 = Tràn
8Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 15
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 16
Sơ đồ phần cứng thực hiện cộng
và trừ
9Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 17
Nhân hai số không dấu
Phức tạp hơn, có nhiều giải thuật được dùng
trong các máy khác nhau.
Nhân hai số nhị phân không dấu n bit tạo ra
tích số có 2n bit
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 18
Sơ đồ khối bộ nhân bằng cách
cộng và dịch
10
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 19
Lưu đồ thuật toán nhân hai số không dấu
Start
C,A 0
M Số bị nhân
Q Số nhân
Count n
Q0=1?
Dịch phải C,A,Q
Count = Count -1
C,A<--A+M
Count=0? End
No Yes
YesNo
Tích số chứa trong A và Q
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 20
Quá trình nhân
11
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 21
Nhân hai số bù 2
Không thể nhân như hai số không dấu, ví dụ
không dấu 11(1011) x 13 (1101) = 143 (10001111)
bù 2 1011(-5) x 1101 (-3) = 10001111 (-113)
-----> Sai
Vấn đề ở chỗ số âm
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 22
Khử yếu tố âm
Ví dụ nếu nhân hai số 1001 và 0011
Không dấu: được 00011011 (9 x 3=27)
Số bù 2: được 11101011 (-7 x 3 = -21)
1001 (9)
x 0011 (3)
00001001 1001 x 20
00010010 1001 x 21
00011011 (27)
1001 (-7)
x 0011 (3)
11111001 (-7) x 20 = -7
11110010 (-7) x 21= -14
11101011 (-21)
Không dấu Bù 2
12
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 23
Khử yếu tố âm (tt)
Phương pháp:
Đổi các thừa số sang số dương, nhân bình thường
và sau đó sẽ lấy dạng bù 2 của kết quả nếu hai thừa
số là khác dấu.
Giải thuật Booth được chuộng hơn
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 24
Giải thuật Booth
Lưu số bị nhân vào thanh ghi M và số nhân vào
thanh ghi Q, dùng một ô nhớ Q
-1 đặt bên phải Q
Khởi động với A=0, Q
-1= 0 và Count = n
While Count>0
switch (Q0Q-1)
Case 01 A=A+M
Case 10 A=A-M
rsht (A,Q,Q
-1), dịch số học sang phải.
Count = Count - 1
13
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 25
Lưu đồ giải thuật Booth
==
=
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 26
Ví dụ 7 x 3 theo giải thuật Booth
14
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 27
Chia hai số nhị phân
00001101
100100111011
1011
1011
1011
001110
001111
100
Thương số
Số bị chiaSố chia
Số dư
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 28
Lưu đồ giải thuật chia hai số nhị phân không dấu
Q chứa thương số
A chứa số dư
15
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 29
Áp dụng chia hai số bù 2
M=số chia, AQ=số bị chia, Count = n
While Count>0
dịch cả Q,A sang trái 1 bit
if M và A cùng dấu
A=A-M
else
A=A+M
if A không đổi dấu
Q0=1
else
if A=0 và Q=0
Q0=1
else
A=Restore (A)// lấy lại giá trị A trước khi cộng/trừ với M, không lấy trị hiện hành.
Count = Count -1
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 30
start
AQ = số bị chia
M = số chia
count = số bit
ShiftLeft (AQ)
count=count-1
M và A cùng dấu?A=A+M A=A-M
A không đổi dấu?A=0 và Q=0?
count=0?
A=giá trị A cũ Q0=1
stop
yes
yes
yes
yes
no
no
no
no
16
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 31
Ví dụ
restore00100001
add1110
shift00100001
set Q0=110010000
add0000
shif10000011
restore11000001
add1110
shift11000001
restore11100000
add1101
shift11100000
Khởi tạo giá trị ban đầu01110000
M=1101 (-3)Q = 0111 (7)A
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 32
Biểu diễn dấu chấm động
(floating point)
Nguyên lý: Dùng dạng ký hiệu khoa học để biểu diễn số
rất lớn hay rất nhỏ.
ví dụ: 168 000 000 000 000 = 1.68 x 1014
0.000000000000168 = 1.68 x 10-14
Linh động chuyển dấu chấm thập phân đến vị trí thuận tiện
và dùng số mũ để theo dõi vị trí dấu chấm=> giúp biểu
diễn dễ dàng một số rất lớn hay rất nhỏ chỉ bằng vài ký số!
Dùng cách tương tự để biểu diễn số nhị phân, dạng:
±S x B±E
17
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 33
Ví dụ
• Số âm sign=1. Số dương sign = 0
• Số mũ thực = Biased Exponent - Bias
• Bias = 2k-1-1= 2(8-1)-1=27-1 = 127
• Significand (mantissa): định trị, là giá trị sau dấu chấm
• Ví dụ:
0 11000100 11100000000000000000000
Dấu +
Định trị = 1/2 + 1/4 + 1/8 = 0.875
Số mũ = 69
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 34
Chuẩn hóa
Số được viết dưới dạng chuẩn:
± 1.bbbb × 2±E
Tại sao? – dễ tính toán, dễ so sánh (không âm)
Cơ sở nào?
Dùng bit dấu (sign bit)
Không cần lưu bit 1 bên trái dấu chấm (mặc định)
bbbb được lưu nguyên dạng
E được lưu ở dạng mã thừa (bias)
Không cần lưu cơ số
18
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 35
Ví dụ
-1.1010001 x 2-10100 = 1 01101011 10100010000000000000000 = -1.6328125 x 2-20
1.1010001 x 210100 = 0 10010011 10100010000000000000000 = 1.6328125 x 220
-1.1010001 x 210100 = 1 10010011 10100010000000000000000 = -1.6328125 x 220
1.1010001 x 2-10100 = 0 01101011 10100010000000000000000 = 1.6328125 x 2-20
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 36
Dải số ứng với 32-bit word
-2-127 2-127 (2-2-23) x 2128(2-2-23) x 2128
19
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 37
Mật độ số
Các số không trải đều trên trục số, càng gần zero mật độ càng cao.
Cần áp dụng phương pháp làm tròn.
Cân đối và giải pháp
Tăng số mũ --> mở rộng dải, số lượng số không đổi--> độ chính
xác giảm.
Chỉ có cách duy nhất là tăng số bit (single precision (32 bit) và
double-precision (64bit))
Dùng cơ số lớn, ví dụ thay 210100 = 16101
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 38
Chuẩn IEEE 754
20
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 39
[1]
[2]
Tham khảo về chuẩn IEE 754
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 40
Tính toán trên số dấu chấm động
Cộng và trừ
Kiểm tra số có bằng zero hay không
Điều chỉnh hai số cho bằng số mũ
Cộng hay trừ phần định trị
Chuẩn hóa kết quả (làm tròn nếu cần)
(123 x 100) - (456 x 10-2) = (123 x 100) + (4.56 x 100) = 127.56 x 100
21
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 41
Lưu đồ cộng và trừ
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 42
Tính toán trên số dấu chấm động
(tt)
Nhân và chia
Kiểm tra số có bằng zero hay không
Cộng hay trừ phần mũ
Kiểm tra tràn trên và tràn dưới
Nhân hay chia phần định trị
Chuẩn hóa
Làm tròn
22
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 43
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 44
23
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 45
Ví dụ
X = 0.3 × 102 = 30
Y = 0.2 × 103 = 200
Tính
X + Y=(0.3 x 102-3 + 0.2) x 103 = 0,23 x 103
X – Y=(0.3 x 102-3 - 0.2) x 103 = - 0,17 x 103
X × Y= (0.3 x 0.2) x 102+3 = 0.006 x 105
X ÷ Y = (0.3÷ 0.2) x 10 2-3 = 1.5 x 10-1
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 46
Chuẩn IEEE cho số học dấu chấm
động nhị phân
Vô cực
- ∞ < mỗi số hữu hạn < +∞
Các phép toán số học liên quan đến vô cực
Quiet and signaling NaNs (NaN = Not a Number)
Các số không chuẩn – để kiểm soát tràn số mũ (số rất nhỏ, ví
dụ mũ quá nhỏ)
24
Biểu diễn và tính toán số học _Nguyễn Hồng Sơn_PTITHCM 47
Bài tập
1.Lấy vài ví dụ nhân hai số bù 2 bất kỳ và thực hiện phép nhân theo giải thuật
Booth.
2. Lấy vài ví dụ chia hai số bù 2 bất kỳ và thực hiện phép chia theo giải thuật chia
hai số bù 2.
3. Cho định dạng 8-bit phần mũ và 23-bit phần định trị, hãy cho biết chuỗi bit biểu
diễn của:
a. -720
b. 0,645
4. Mô tả hoạt động cộng số dấu chấm động, cho phần định trị bị xén còn 4 ký số
thập phân:
a. 0.5566 x 103 + 0.7777 x 103
b. 0.3344 x 102 - 0.8877 x 10-1
11/44
BỘ NHỚ TRONG
BÀI 9
Nguyễn Hồng Sơn
Khoa CNTT, PTITHCM
2
Toång quan heä thoáng boä nhôù maùy tính
Ñaëc tröng cuûa heä thoáng boä nhôù
Vò trí: trong hay ngoaøi, trong CPU
Dung löôïng: kích thöôùc töø nhôù, soá löôïng töø nhôù
Ñôn vò truyeàn taûi: töø hay khoái
Phöông phaùp truy xuaát: truy xuaát tuaàn töï, truy xuaát
tröïc tieáp, truy xuaát ngaãu nhieân, truy xuaát lieân keát
(cache)
Hieäu suaát: thôøi gian truy xuaát, toác ñoä truyeàn, chu kyø
Daïng vaät lyù: baùn daãn hay baêng töø
Ñaëc tính vaät lyù: thay ñoåi/khoâng thay ñoåi, xoùa
ñöôïc/khoâng theå xoùa
Toå chöùc boä nhôù: saép xeáp vaät lyù caùc bit ñeå hình thaønh
moät töø
23
Phaân caáp boä nhôù
Thanh
ghi
cache
Main memory
Disk cache
Ñóa töø
Baêng töø Ñóa quang
-Giaûm giaù thaønh
-Dung löôïng taêng
-Thôøi gian truy
xuaát taêng
-Taàn suaát truy
xuaát cuûa CPU
giaûm
4
Boä nhôù chính_caùc loaïi boä nhôù
baùn daãn
RAM (Random Access Memory)
RAM ñoäng: laøm töø tuï ñieän, caàn laøm töôi, maät ñoä cao
RAM tónh: laøm baèng caùc flip-flop, nhanh
ROM (Read Only Memory)
PROM (Programmable ROM)
EPROM(Erasable PROM)
EEPROM (Electrically EPROM)
Flash Memory: laäp trình laïi raát nhanh, maät ñoä cao,
xoùa baèng ñieän vaø chæ caàn vaøi giaây.
35
Boä nhôù chính_toå chöùc boä nhôù
Cell nhôù laø phaàn töû cô baûn coù caùc thuoäc
tính:
Hai traïng thaùi: 1 vaø 0
Coù theå caøi ñaët traïng thaùi, hoaït ñoäng ghi
Coù theå ñoïc traïng thaùi, hoaït ñoäng ñoïc
6
Cell
Ñieàu
khieån
Choïn Data vaøo
Ghi
Cell
Ñieàu
khieån
Choïn
Ñoïc
Data ra
47
Boä nhôù chính_chip logic
Moãi chip goàm moät daõy caùc cell nhôù
Daõy ñöôïc toå chöùc thaønh W töø B bit (vd:
16_Mbit chip ñöôïc toå chöùc töø 1M töø 16 bit)
1bit chip: data ñöôïc ñoïc ghi moãi laàn moät
bit
8
Ñeäm
ñòa
chæ
haøng
Ñeäm
ñòa
chæ
coät
Boä ñeám
laøm töôi
MUX
Giaûi
maõ
haøng
Daõy boä nhôù
2048x2048
Boä khueách ñaïi
vaø coång I/O
Giaûi maõ coät
Ñeäm nhaäp
Ñeäm xuaát
Ñònh thôøi vaø ñieàu khieån
A0
A1
A10
RAS CAS WE OE
D1
D2
D3
D4
4
59
10
Boä nhôù chính_chip logic
RAS (row address select), CAS (column
address select)
Haøng keát noái ñeán ngoõ Choïn (select) cuûa
cell
Coät keát noái ñeán ngoõ vaøo/ra data
Soá ñöôøng ñòa chæ caàn = log2W
611
Boä nhôù chính_toå chöùc module
Neáu chip 1 bit thì caàn soá chip ít nhaát baèng
soá bit/töø cuûa RAM
Toå chöùc moät RAM caên cöù vaøo dung löôïng
yeâu caàu vaø loaïi chip
12
256K 1bit
D
e
cod
e
1
/512
Decode 1/512
D
e
cod
e
1
/512
Decode 1/512
D
e
cod
e
1
/512
Decode 1/512
1
2
7
8
9
9
256K 1bit
256K 1bit
Bit #1
Bit #7
Bit #8
MAR
MBR
Boä nhôù
256 Kbyte
713
14
Baøi taäp
Thieát keá boä nhôù DRAM dung löôïng 1Mbyte vôùi caùc chip
1bit (dung löôïng moät chip laø tuøy choïn)? Từ nhớ 1 byte.
Thiết kế DRAM 1Mbyte với các chip 1 bit co dung lượng
256Kbit? Từ nhớ 1 byte.
Haõy veõ sô ñoà thieát keá DRAM 256Mbyte vôùi caùc chip 2
bit coù dung löôïng 128Mbit? Từ nhớ 1 byte.
Thiết kế DRAM 1Mbyte với 16 chip 1 bit co dung lượng
256Kbit va cac chip 4 bit co dung luong 1Mbit? Từ nhớ 1
byte.
Thieát keá boä nhôù DRAM dung löôïng 4Mbyte vôùi caùc chip
2bit (dung löôïng moät chip laø tuøy choïn)
815
1M 1bit
D
e
cod
e
1
/10
24
Decode 1/1024
D
e
cod
e
1
10
24
Decode 1/1024
D
e
cod
e
1
/10
24
Decode 1/1024
1
2
7
8
10
10
1M 1bit
1M 1bit
Bit #1
Bit #7
Bit #8
MAR
MBR
Boä nhôù
1Mbyte
16
Boä nhôù cache
Nguyeân lyù:
Bộ nhớ cache là một giải pháp tăng tốc truy xuất bộ
nhớ chính. Cache chứa một phần bộ nhớ chính. Vì vậy
khi muốn truy xuất một từ nhớ, CPU sẽ tìm trong
cache, nếu có sẽ lấy từ nhớ rất nhanh, nếu không
thấy sẽ lấy từ bộ nhớ chính và nạp nguyên khối nhớ
chứa từ đó vào cache. Lý do nạp cả khối nhớ vào
cache: trên cơ sở dự đoán các truy xuất tiếp theo sẽ
tham chiếu đến các từ nhớ lân cận từ nhớ vừa truy
xuất và như vậy truy xuất kế tiếp sẽ nhanh.
917
CPU
Cache
Boä nhôù chính
Truyeàn vaøo töøng töø
(word)
Truyeàn vaøo töøng khoái
(block)
18
0
1
2
2n-1
Block
(K töø)
Block
(K töø)
Block
(K töø)
Chieàu daøi moät töø
Ñòa chæ Noäi dung
Boä Nhôù Chính
Chæ soá line Tag Block
0
1
2
C-1
K töø
Cache
10
19
Baét ñaàu
Nhaän ñòa chæ töø CPU
Coù block chöùa
ñòa chæ
naøy khoâng?
Laáy noäi dung
chuyeån cho CPU
Truy xuaát boä nhôù chính
Caáp line cho khoái
boä nhôù chöùa ñòa chæ naøy
Chuyeån noäi dung
cho CPU
Naïp khoái nhôù
vaøo cache
khoâng
coù
Keát thuùc
Hoaït ñoäng ñoïc cache
20
Kích thöôùc cuûa cache
Boä nhôù coù kích thöôùc 2n, chia laøm M khoái, moãi
khoái coù K töø => M=2n/K
Cache coù C line, moãi line chöùa moät tag vaø moät
khoái K töø
M>>C
Cache ñuû nhoû ñeå chi phí ~ main memory vaø
khoâng trôû neân chaäm
Cache ñuû lôùn ñeå truy xuaát nhanh
Phaåm chaát cache∈coâng ngheä vi maïch
Heä soá tìm thaáy (hit ratio): khaû naêng laáy ñöôïc soá
lieäu caàn thieát töø cache.
11
21
A #nh xaï boä nhôù chính vaøo cache
Toå chöùc cache phuï thuoäc vaøo phöông phaùp
aùnh xaï ñöôïc duøng
Coù ba phöông phaùp aùnh xaï chuû yeáu
Tröïc tieáp
Lieân keát toàn bộ
Lieân keát nhoùm
22
A #nh xaï tröïc tieáp
i= j modulo c
i : chæ soá line
j : chæ soá khoái boä nhôù chính
c : soá löôïng line cuûa cache
Haøm aùnh xaï deã daøng thöïc hieän baèng ñòa chæ. Ñeå
phuïc vuï cho vieäc truy xuaát, moãi ñòa chæ boä nhôù chính
coù theå ñöôïc chia thaønh ba phaàn:
w bit thaáp nhaát ñònh danh cho 1 töø hay moät byte trong
moät khoái
s bit coøn laïi chæ ra moät trong 2s khoái boä nhôù chính
Trong ñoù s-r bit cao nhaát laø danh ñònh cuûa tag
r bit coøn laïi laø danh ñònh cuûa cache line.
12
23
W0
W1
W2
W3
W4j
W(4j+1)
W(4j+2)
W(4j+3)
tag line töø
So saùnh
Ñòa chæ boä nhôù
Cache
Tag Noäi dung
B0
Bj
Boä nhôù chính
Coù trong cache
Khoâng coù trong cache
s+w
S
w
K0
Ki
s-r r w
s-r
w
Line
0
1
C-1
Kc-1
A#nh xaï tröïc tieáp.
24
c-1,2c-1,.,2s-1c-1
1,c+1,,2s-c+11
0,c,,2s-c0
Caùc khoái boä nhôù ñöôïc gaùnCache line
A#nh xaï tröïc tieáp..
13
25
A #nh xaï tröïc tieáp
Ñôn giaûn, chi phí thöïc hieän thaáp
Moät khoái boä nhôù cho tröôùc chæ ñöôïc gaùn
moät vò trí cache coá ñònh => heä soá tìm thaáy
seõ thaáp trong moät soá tröôøng hôïp, khoâng taän
duïng toái ña hieäu suaát cache
26
A #nh xaï tröïc tieáp
Vi# du $
Kích thöôùc cache 64Kbyte
K=4byte
Boä nhôù chính 16Mbyte=224 (24 ñöôøng ñòa chæ)
⇒M=222 Block, C=214
Trình baøy hoaït ñoäng aùnh xaï vaø cho bieát caùc khoái
boä nhôù chính naøo vaøo line naøo cuûa cache?
14
27
28
A #nh xaï lieân keát toàn bộ
(full associative mapping)
Cho pheùp moãi khoái boä nhôù ñöôïc aùnh xaï
vaøo baát kyø line naøo cuûa cache.
Ñòa chæ boä nhôù goàm coù hai phaàn:
Tag: ñònh danh duy nhaát cho moät khoái boä nhôù
Töø: vò trí noäi dung caàn laáy trong khoái boä nhôù
15
29
W0
W1
W2
W3
W4j
W(4j+1)
W(4j+2)
W(4j+3)
tag töø
So saùnh
Ñòa chæ boä nhôù
Cache
Tag Noäi dung
B0
Bj
Boä nhôù chính
Coù trong cache
Khoâng coù trong cache
s+w
S
w
K0
Ki
s w
w
Line
0
1
C-1
Kc-1
A#nh xaï lieân keát toàn bộ.
s
s
s
30
A #nh xaï lieân keát toàn bộ
Ñeå xaùc ñònh khoái coù trong cache hay
khoâng, logic ñieàu khieån cache phaûi kieåm
tra tag ôû moïi line => maïch thöïc hieän kieåm
tra khaù phöùc taïp.
Linh hoaït choïn block ñeå thay theá khi ñoïc
moät block môùi vaøo cache => thieát keá caùc
thuaät toaùn thay theá ñeå toái ña heä soá tìm thaáy
16
31
A #nh xaï lieân keát nhoùm
(set associative mapping)
Dung hoøa öu ñieåm cuûa caû hai phöông phaùp treân.
Toaøn boä cache ñöôïc chia thaønh v nhoùm, moãi
nhoùm coù k line.
Pheùp aùnh xaï nhö sau:
c=v.k
i=j modulo v
i: chæ soá cuûa nhoùm trong cache
j: chæ soá cuûa khoái boä nhôù chính
c: toång soá line trong cache
32
A #nh xaï lieân keát nhoùm (tt)
Khoái Bj ñöôïc aùnh xaï vaøo baát kyø line naøo trong
nhoùm i
Ñòa chæ boä nhôù coù ba phaàn:
Tag
Nhoùm
Töø
d bit chæ ra coù 2d nhoùm, s-d laø soá bit cuûa phaàn tag.
Nhö vaäy boä nhôù chính ñöôïc chia thaønh 2s khoái.
17
33
F0
F1
FK-1
FK
FK+i
B0
B1
Bj
tag töø
So saùnh
Ñòa chæ boä nhôù
Cache
Tag Noäi dung
Boä nhôù chính
Coù trong cache
Khoâng coù trong cache
s+w
Nhoùm 0
s-d w
w
line
0
1
C-1
F2K-1
A#nh xaï lieân keát nhoùm.
s-d
s-d
d
nhoùm
Nhoùm 1
s+w
34
Ví dụ 2 line/nhóm
(two way associative mapping)
18
35
Thuaät toaùn thay theá
Least-recently used
FIFO
Least-frequently used
Random
36
Chính saùch ghi
Hai vaán ñeà
Thay ñoåi moät töø trong cache töø trong boä nhôù khoâng
hôïp leä
Thay ñoåi moät töø trong boä nhôù töø trong cache khoâng
hôïp leä
Kyõ thuaät ghi
Write througth
Write back : duøng UPDATE bit
19
37
Chính saùch ghi
Toå chöùc bus vôùi nhieàu thieát bò (boä xöû lyù) coù cache rieâng vaø
duøng chung moät main memory vaán ñeà môùi
Cache coherency system
Bus watching with Write Througth: moãi boä ñieàu khieån cache ñeàu
giaùm saùt caùc ñöôøng ñòa chæ ñeå phaùt hieän hoaït ñoäng boä nhôù vôùi
caùc bus master khaùc, neáu coù ghi vaøo moät vò trí boä nhôù naøo ñoù maø
moät line cache coù chöùa thì boä ñieàu khieån seõ ñaët line vaøo traïng
thaùi baát hôïp leä.
Hardware Transparency: boå sung phaàn cöùng ñeå ñaûm baûo moïi
caäp nhaät boä nhôù ñeàu ñöôïc thoâng baùo vôùi taát caû caùc cache
No-cachable memory: chæ moät phaàn boä nhôù ñöôïc chia seû cho
nhieàu boä xöû lyù (thieát bò). Khoâng bao giôø copy phaàn boä nhôù chia
seû vaøo trong cache.
38
Kích thöôùc khoái
Khi moät khoái baét ñaàu gia taêng kích thöôùc töø nhoû
ñeán lôùn. Thoaït ñaàu hit ratio taêng, khi kích thöôùc
khoái lôùn ñeán moät möùc naøo ñoù hit ratio laïi giaûm.
Khoái lôùn soá line giaûm
Khi khoái lôùn moãi töø theâm vaøo trôû neân xa vôùi töø
ñang tham chieáu vaø hieám khi ñöôïc tham chieáu
trong töông lai gaàn.
Quan heä giöõa kích thöôùc khoái vaø hit ratio raát
phöùc taïp, khoù tìm ra chính xaùc quan heä naøo trong
ñoù hit ratio luoân toái öu.
20
39
Soá löôïng cache
Cache ñôn
On-chip cache (internal cache): Cache naèm treân
cuøng chip vôùi CPU.
Off-chip cache (external cache) : Cache coù theå ñoïc
qua external bus
Cache hai möùc: duøng caû hai loaïi
internal cache_L1
vaø external cache _L2 (thöôøng duøng SRAM)
40
21
41
Soá löôïng cache
Hôïp nhaát
Khi môùi xuaát hieän on-chip cache, nhieàu thieát keá duøng
moät cache ñeå chöùa data vaø instruction
Coù hit ratio cao, do coù ñieàu kieän laøm vieäc theo Data-
bound hay Instruction-bound
Ñôn giaûn cho thieát keá vaø hieän thöïc
Taùch bieät
Nhöõng thieát keá gaàn ñaây chia cache thaønh hai phaàn:
moät chöùa data vaø moät chöùa insruction
Hoã trôï xöû lyù song song, pipelining caùc chæ thò
Ngaên chaën söï tranh chaáp giöõa boä xöû lyù chæ thò vaø ñôn
vò thöïc thi.
42
Ñieàu khieån cache
Cache beân trong ñöôïc ñieàu khieån bôûi hai bit cuûa
moät thanh ghi ñieàu khieån, goïi laø CD (cache
disable) vaø NW (not write-througth)
Coù hai chæ thò
INVD: huûy boû noäi dung trong cache vaø baùo cho cache
ngoaøi.
WBINVD: cuõng coù chöùc naêng töông töï nhöng baùo cho
cache ngoaøi thöïc hieän ghi vaøo boä nhôù khoái ñaõ hieäu
chænh.
22
43
Sô ñoà cache trong Pentium IV
44
Sô ñoà cache trong PowerPC G5
23
45
Tính toán với cache
Hiệu suất cache được đánh giá qua:
CPU execution time =(CPU clock cycles + Memory stall cycles)× Clock cycle time
Giả sử CPU clock cycles đã bao gồm thời gian xử
lý một cache hit và CPU bị treo trong khi cache
miss.
46
Tính toán với cache (tt)
Số chu kỳ treo do đợi bộ nhớ là:
Average memory access time = Hit time+Miss rate.Miss penalty
24
47
Ví dụ
Một máy tính chỉ cần 1 clock cho một chỉ thị
nếu tìm thấy trong cache. Số chỉ thị cần truy
xuất data chiếm 50%. Chi phí không tìm thấy
trong cache là 25 chu kỳ clock và hệ số hit là
98%. Nếu tất cả các chỉ thị đều tìm thấy trong
cache thì máy tính chạy nhanh gấp bao nhiêu
lần so với trường hợp này?
48
Giải
-Tính thời gian thực thi nếu luôn tìm thấy trong cache:
TCPU-EX = (Số chu kỳ CPU+ Số chu kỳ treo đợi).Tck
= (IC.CPI + 0).Tck= IC.1.Tck
-Tính thời gian thực thi có miss rate:
Thời gian treo = IC.(1+0,5).(1-0,98).25=0,75IC
Thời gian thực thi = (IC.1+0,75IC).Tck
Số lần nhanh hơn = (IC.1+0,75IC).Tck/IC.1.Tck= 1,75
25
49
Tính số hit trong hoạt động ghi
Có hai tùy chọn với hoạt động ghi:
-Write allocate: Cấp block trên cache cho hoạt
động ghi.
-No-write allocate: Không cấp block, block được
cập nhật ngay trên bộ nhớ.
50
Ví dụ
Giả sử ánh xạ cache là liên kết với write-back. Xem xét đoạn
chương trình sau:
write M[100]
write M[100]
read M[200]
write M[200]
write M[100]
Hãy tính số hit và miss:
a, với write allocate
b, với no-write allocate
11
BỘ NHỚ NGOÀI
BÀI 9
2
ÑÓA TÖØ
Ñóa töø laø boä nhôù thöù caáp phoå duïng nhaát
Phöông phaùp truy xuaát: tröïc tieáp
Truy xuaát nhanh hôn baêng töø
Coù : ñóa meàm, ñóa cöùng
Beà maët ñóa ñöôïc phuû vaät lieäu coù theå töø hoùa
23
ĐĨA TỪ (tt)
Döõ lieäu ñöôïc ghi vaøo hay ñoïc ra bôûi moät cuoän daây caûm
öùng goïi laø ñaàu töø (head)
Döõ lieäu ñöôïc saép xeáp treân ñóa thaønh caùc voøng troøn ñoàng
taâm ñöôïc goïi laø track. Track coù beà ngang baèng vôùi kích
thöôùc cuûa ñaàu töø. Giöõa caùc track coù khoaûng ngaên caùch.
Moãi track coù löôïng bit löu tröõ baèng nhau => maät ñoä?
Moãi track ñöôïc chia thaønh caùc sector, thöôøng coù töø 10
ñeán 100 sector/track, giöõa caùc sector cuõng coù khoaûng
ngaên caùch.
Coù töø 40 ñeán 100 track treân moät maët ñóa
Moãi sector thöôøng coù töø 32 ñeán 1024 byte.
4
35
6
Đĩa từ (tt)
Những Track vật lí nằm trên những đĩa khác nhau được
nhóm thành Cylinder và chúng được chia thành Sector.
Khái niệm về Cylinder là rất quan trọng, khi những
thông tin trên những đĩa khác nhau trong cùng một
Cylinder thì không cần phải dịch chuyển đầu đọc/ghi.
Sector là đơn vị nhỏ nhất của đĩa có thể truy cập.
Ổ đĩa dùng kỹ thuật gọi là Zoned-bit recording thì
những Track nằm vòng ngoài có nhiều Sector hơn
những Track nằm bên trong .
47
Ñóa töø
Nhaän daïng vò trí cuûa sector trong moät track
nhö theá naøo?
Phaûi coù ñieåm ñaàu cuûa track
Coù caùch xaùc ñònh ñieåm baét ñaàu vaø keát thuùc
moät sector
Giaûi phaùp: duøng thoâng tin ñieàu khieån
=> Caàn phaûi ñònh daïng ñóa (format) tröôùc khi
duøng
8
Ví dụ định dạng đĩa Seagate ST506
59
Ñóa töø
Caùc ñaëc tröng
Ñaàu töø coá ñònh: coù moät ñaàu cho moãi track
Ñaàu töø di chuyeån: moät ñaàu duøng chung cho
caùc track
Moät maët
Hai maët
Nhieàu ñóa
10
Ñóa töø
Ñaàu töø Winchester
Ñöôïc thieát keá ñeå laøm vieäc gaàn vôùi maët ñóa, taïo
ñieàu kieän taêng dung löôïng?
Töïa nheï leân maët ñóa, khi ñóa quay coù aùp suaát
taïo ra ñuû ñeå naâng ñaàu töø leân traùnh ma saùt vôùi
ñóa.
611
Ñóa töø
Thôøi gian truy xuaát ñóa
Seek time: thôøi gian chuyeån ñaàu töø ñeán track
Rotational latency: thôøi gian chuyeån sector
ñeán ñaàu töø
Transmit time: thời gian truyền
12
Ñóa töø
Ñeå truy xuaát thoâng tin:
Ñaàu töø phaûi di chuyeån ñeán ñuùng track-maát moät thôøi
gian goïi laø thôøi gian tìm kieám.
Sector phaûi quay ngay döôùi ñaàu töø-thôøi gian ñeå ñöa
sector ñeán döôùi ñaàu töø goïi laø thôøi gian quay.
Thôøi gian truy xuaát = ΣTi
Thôøi gian tìm kieám treân caùc ñóa cöùng hieän haønh trung bình laø
10ms (Seagate, Maxtor)
Toác ñoä quay 5400 voøng/phuùt vaø 7200 voøng/phuùt
Thôøi gian quay thöôøng laáy baèng vôùi thôøi gian quay ½ voøng
Thời gian truyền tùy vào tốc độ của chuẩn đĩa
713
Ñóa töø
Thôøi gian truy xuaát thoâng tin treân ñóa
chaäm hôn khoaûng 100 000 laàn so vôùi truy
xuaát treân RAM
14
Hệ thống file
Cách tổ chức để xác định chính xác những dữ liệu
được lưu trên ổ đĩa cứng.
Hệ thống File phụ thuộc vào hệ điều hành.
Ví dụ FAT là hệ thống file được giới thiệu lần đầu tiên
vào năm 1981 cùng với sự ra đời của MS-DOS . Mục
đích của FAT (File Allocation Table) là cung cấp một
bản đồ giữa những Cluster và vị trí vật lí của dữ liệu
được xác định bởi Cylinder, Track và Sector, được
dùng bởi phần cứng điều khiển ổ đĩa
FAT 16, FAT 32, NTFS
815
Hệ thống file
FAT bao gồm đầu vào mọi File được lưu trữ trên phân vùng ổ
cứng và là địa chỉ bắt đầu Cluster của File. Mỗi Cluster bao gồm
nội dung của File và con trỏ chỉ tới Cluster tiếp theo chứa nội
dung File hoặc thông báo kết thúc File : End-Of-File (0xFFFF) để
thông báo Cluster đó là điểm cuối của File
Ví dụ dưới đây có 03 File: File1.txt dùng 03 Cluster . File2.txt là
file bị phân mảnh cũng có 03 Cluster ( 5,6 và 8 ), và File3.txt vừa
trong một Cluster (7)
16
BĂNG TỪ
Reû, dung löôïng lôùn, töø 50 Mb trôû leân.Ví duï
baêng video coù teå töø 2Gb ñeán 8Gb
Laø phöông tieän löu tröõ vaø truy xuaát tuaàn
töï.
917
18
ĐĨA QUANG
CD-ROM (Compact Disk-ROM)
DVD-(Digital Video/Versatile Disk)
Ñöôïc laøm baèng vaät lieäu toång hôïp: polycarbonate, ñöôïc phuû moät
lôùp phaûn quang thöôøng laø aluminum.
Döõ lieäu ghi vaøo ôû daïng soá (digital), khi ghi döõ lieäu ñöôïc bieåu
dieãn döôùi daïng moät chuoãi caùc loã cöïc nhoû treân beà maët phaûn
quang
Thoâng tin ñöôïc laáy bôûi moät laser coâng suaát thaáp chieáu saùng maët
phaûn quang trong khi ñóa quay.
Cöôøng ñoä aùnh saùng phaûn chieáu thay ñoåi khi gaëp phaûi loã. Thay
ñoåi naøy seõ ñöôïc caûm nhaän bôûi caûm bieán quang vaø ñöôïc ñoåi
ngöôïc thaønh tín hieäu soá.
10
19
20
11
21
RAID
(Redundant Array of Independent Disk)
Caùc nhaø thieát keá taêng hieäu suaát laøm vieäc cuûa maùy tính baèng
kyõ thuaät song song.
RAID laø chuaån ñeå thieát keá cô sôû döõ lieäu nhieàu ñóa, taïo ñieàu
kieän cho xöû lyù song song
RAID ñöôïc ñeà nghò nhö laø giaûi phaùp giuùp xoùa boû ngaên caùch veà
toác ñoä giöõa CPU vaø oå ñóa ngoaøi.
Caûi thieän ñoä tin caäy
Khoù khaên: toå chöùc löu tröõ cô sôû döõ lieäu höõu duïng treân nhieàu
maët ñóa vaø sự kha Gc nhau giữa ca Gc heä ñieàu haønh
⇒ Chuaån thieát keá cô sôû döõ lieäu ña ñóa goïi laø RAID
RAID coù 6 möùc cơ ba Hn, ñaùnh soá töø 0 ñeán 5.
22
RAID
Caùc möùc RAID coù 3 ñaëc tính:
Laø moät taäp caùc ñóa vaät lyù ñöôïc heä ñieàu haønh coi nhö laø
moät ñóa
Döõ lieäu ñöôïc löu tröõ xuyeân qua caùc ñóa vaät lyù
Dung löôïng ñóa döï phoøng ñöôïc duøng ñeå löu thoâng tin
kieåm tra (parity) vaø baûn sao döõ lieäu ñeå coù theå phuïc
hoài döõ lieäu trong tröôøng hôïp ñóa chính hö hoûng.
Caùc möùc RAID khaùc nhau ôû hai ñaëc tính sau.
RAID 0 khoâng coù ñaëc tính thöù 3.
12
23
RAID 0
RAID 0 khoâng coù hoã trôï döï phoøng.
Chæ ñôn thuaàn laø coù moät daõy ñóa, vaø döõ lieäu ñöôïc
ñaët vaøo caùc ñóa cöù nhö moät ñóa lôùn_ñóa luaän lyù.
Lôïi ích: khi coù hai yeâu caàu I/O ñoàng thôøi ñeán hai
khoái döõ lieäu khaùc nhau, neáu naèm treân hai ñóa
khaùc nhau laø coù theå ñaùp öùng ñoàng thôøi.
Toaøn boä ñóa ñöôïc chia thaønh caùc maûnh (strip),
maûnh laø caùc khoái vaät lyù, caùc sector.
Caùc strip ñöôïc saép xeáp theo round-robin lieân tieáp
nhau.
24
Strip 0
Strip 4
Strip 8
Strip 12
Strip 1
Strip 5
Strip 9
Strip 13
Strip 2
Strip 6
Strip 10
Strip 14
Strip 3
Strip 7
Strip 11
Strip 15
ÑÓA LUAÄN LYÙ
RAID 0
13
25
Ví dụ ánh xạ data cho RAID 0
26
RAID 1
Nhaân ñoâi taát caû döõ lieäu
Ñoïc moät trong hai
Ghi caû hai
Phuïc hoài döõ lieäu bò hoûng ñôn giaûn
Chi phí cao
14
27
Strip 0
Strip 4
Strip 8
Strip 12
ÑÓA LUAÄN LYÙ
Strip 0
Strip 4
Strip 8
Strip 12
Strip 3
Strip 8
Strip 11
Strip 15
Strip 2
Strip 6
Strip 10
Strip 14
Strip 1
Strip 5
Strip 9
Strip 13
Strip 3
Strip 8
Strip 11
Strip 15
Strip 2
Strip 6
Strip 10
Strip 14
Strip 1
Strip 5
Strip 9
Strip 13
RAID 1 (nhaân ñoâi)
28
RAID 2
Hoã trôï truy xuaát song song
Taát caû caùc ñóa thaønh vieân ñeàu tham gia vaøo quaù
trình thöïc thi moãi yeâu caàu I/O
Moãi strip laø nhoû, côõ 1 byte hay töø
Maõ söûa loãi ñöôïc tính theo caùc bit töông öùng treân
moãi ñóa döõ lieäu. Caùc bit cuûa maõ söûa sai ñöôïc löu
treân vò trí töông öùng treân nhieàu ñóa. Thöôøng duøng
maõ Hamming
Maëc duø duøng ít ñóa hôn RAID 1 nhöng vaãn coøn
nhieàu ñaét tieàn.
15
29
b3b2b1 F2(b)F1(b)F0(b)b0
30
RAID 3
Toå chöùc gioáng RAID 2
Chæ boå sung theâm moät ñóa, söû duïng maõ kieåm tra loãi ñôn
giaûn laø parity bit, bit kieåm tra ñöôïc tính treân cô sôû caùc bit
treân caùc ñóa döõ lieäu coù vò trí töông öùng.
X4(i)=X3(i) ⊕ X2(i) ⊕ X1(i) ⊕ X0(i)
⇒ X0(i)=X3(i) ⊕ X2(i) ⊕ X1(i) ⊕ X4(i)
X1(i)=X3(i) ⊕ X2(i) ⊕ X4(i) ⊕ X0(i)
.
16
31
b3b2b1 P(b)b0
RAID 3
32
RAID 4
Hoã trôï truy xuaát ñóa ñoäc laäp
17
33
RAID 5
34
RAID 5 mở rộng (còn gọi là RAID 6)
Bổ sung thêm một đĩa để tăng cường kiểm soát
lỗi theo Reed-Solomon code
18
35
RAID 1-0
Kết hợp RAID 0 và RAID 1
11
Bài 10
HỆ THỐNG BUS
2
Cấu trúc liên nối
Tập hợp các đường dẫn kết nối các module
khác nhau được gọi là cấu trúc liên nối.
Việc thiết kế cấu trúc này phụ thuộc vào
nhu cầu trao đổi giữa các module.
23
Memory
address
inst/Data
Inst/Data
Read
write
I/O
Moduleaddress
Internal Data
Interrup request
Read
write
External Data
Internal Data
External Data
CPU
Instruction
Data
Data
Interrup request
Control signal
address
4
Các hoạt động truyền thường xuyên
Memory đến CPU
CPU đến Memory
I/O đến CPU
CPU đến I/O
I/O Memory
35
Liên kết bus
Bus là một tuyến gồm nhiều đường thông tin kết
nối hai hay nhiều thiết bị.
Đặc tính quan trọng nhất của bus : bus là một môi
trường truyền dẫn chia sẻ.
Song song
Máy tính chứa một số các bus khác nhau cung cấp
đường nối giữa các thành phần tại các mức khác
nhau trong tổ chức phân cấp của máy tính.
6
Bus hệ thống
Một bus nối các thành phần chủ chốt của
máy tính được gọi là bus hệ thống (system
bus). Có nhiều thiết kế cho system bus. Bất
kỳ thiết kế nào cũng có ba nhóm :
Data
Address
Control
47
CPU Memory Memory I/O I/O
Control
Address
Data
8
Các đường điều khiển thông thường
Ghi bộ nhớ
Đọc bộ nhớ
Ghi I/O
Đọc I/O
Truyền báo nhận ACK
Yêu cầu bus
Cấp bus
Yêu cầu ngắt
Định thời
Reset
59
Hoạt động của bus
Một module muốn truyền data phải làm hai điều:
lấy quyền dùng bus
truyền dữ liệu qua bus
Một module muốn lấy data từ module khác
lấy quyền dùng bus
gửi yêu cầu đến module kia qua đường điều khiển và
địa chỉ thích hợp
đợi
10
Phân cấp đa bus
Khi số thiết bị kết nối vào bus quá nhiều,
hiệu suất máy trở nên sa sút bởi hai lý do:
trễ truyền lớn_ thời gian để lấy quyền dùng bus
_vì điều khiển được chuyển từ thiết bị này sang
thiết bị khác.
Bus bị nghẽn khi tổng yêu cầu truyền đạt mức
giới hạn của bus;
Nếu dùng bus rộng hơn, tốc độ cao hơn?
611
Phân cấp đa bus
Giải pháp cho vấn đề là dùng nhiều bus
Local bus: kết nối CPU với bộ nhớ cache và có thể hỗ trợ
kết nối cho một hay nhiều thiết bị cục bộ. Bộ điều khiển
cache không chỉ kết nối đến local bus mà còn kết nối đến
system bus.
System bus: kết nốt tất cả các module bộ nhớ.
Expansion bus: mặc dù có thể kết nối nhiều I/O controller
vào system bus. Nhưng giải pháp hiệu quả hơn là dùng
một hay nhiều bus mở rộng. Giao tiếp bus mở rộng đệm
dữ liệu truyền giữa system bus với I/O controller trên bus
mở rộng. Điều này cách ly được các luồng lưu lượng.
12
processor Cache
Local I/O
controllerBộ nhớ
System bus
Giao tiếp
mở rộngNetwork
SCSI Modem
Serial
Bus mở rộng
Local bus
Controller
KIẾN TRÚC TRUYỀN THỐNG
713
Bộ nhớ
Cache
/bridgeprocessor
High-speed bus
Bus mở rộng
SCSI P1394 Card đồ họa Video
High-Speed
LAN
Giao tiếp
bus mở rộngFax Modem serial
Local bus System bus
KIẾN TRÚC TĂNG HIỆU SUẤT
14
Các đặc trưng của bus
Loại bus
Phương pháp phân xử
Timing
Bề rộng
Dạng truyền data
815
Loại bus
Không ghép kênh: được gán cố định cho một chức
năng hay một nhóm thiết bị. Ví dụ
Ưu điểm
Khuyết điểm
Ghép kênh thời gian: bus được dùng cho nhiều
chức năng. Ví dụ
Ưu điểm
Khuyết điểm
16
Phương pháp phân xử bus
Trong hầu hết các hệ thống có nhiều module cần phải điều khiển việc
dùng bus. Ví dụ I/O module muốn đọc ghi data trực tiếp với bộ nhớ
không qua CPU. Mỗi lúc Bus chỉ phục vụ một đơn vị. Cấp bus cho
đơn vị nào và vào thời điểm nào?
Phân thành hai nhóm phương pháp:
Tập trung: dùng bus controller hay arbiter , phân phối thời gian,
arbiter có thể là một module tách biệt hay là thành phần của CPU
Phân bố: mỗi module chứa một access control logic, chúng tương
tác với nhau để chia sẻ bus.
Mục đích của phân xử bus là bổ nhiệm một thiết bị CPU hay I/O
module làm master. Master có thể khởi động đọc/ghi data với thiết bị
khác. Các thiết bị được đọc hay ghi đó được gọi là slave.
917
Timing
Timing đề cập đến phương pháp trong đó các sự kiện được
phối hợp trên bus.
Đồng bộ: diễn biến các sự kiện được xác định theo một đồng hồ
(clock). Bus có một đường clock truyền trạng thái 1 và 0 luân
phiên liên tục. Việc truyền 1-0 được xem như một chu kỳ đồng
hồ hay chu kỳ bus, qua đó xác định một khe thời gian.
Tất cả các thiết bị trên bus đều thấy clock. Tất cả các sự kiện đều
bắt đầu tại đầu của chu kỳ bus
Các tín hiệu bus có thể thay đổi tại sườn của xung clock
Hầu hết các sự kiện đều chiếm một chu kỳ.
18
clock
Start
read
Addr lines
Data lines
Ack
Timing đồng bộ
10
19
Timing
Timing bất đồng bộ: xuất hiện sự kiện này diễn
ra sau và phụ thuộc vào sự xuất hiện của một sự
kiện khác
Cho phép một hỗn hợp các thiết bị nhanh chậm
khác nhau, dùng kỹ thuật cũ và mới cùng chia
sẻ bus.
20
MSYN
SSYN
Read
Addr Lines
Data lines
11
21
Bề rộng bus
Bề rộng của data bus ảnh hưởng đến hiệu
suất của hệ thống: data bus càng rộng số
lượng bit truyền đi một lần càng lớn.
Bề rộng của addr bus ảnh hưởng đến dung
lượng của hệ thống: addr bus càng rộng dải
vị trí địa chỉ hóa càng lớn.
22
Dạng truyền dữ liệu
Có một số dạng thức truyền data khác nhau mà bus hỗ trợ
Tất cả bus đều hỗ trợ cả ghi (masterslave) và đọc
(slavemaster).
Trong trường hợp ghép kênh addr/data: trước tiên bus
được dùng để chỉ addr sau đó được dùng truyền data.
Trong hoạt động đọc thường phải đợi lấy data từ slave và
đặt lên bus. Trong cả hai hoạt động đọc và ghi đều phải
mất thời gian lấy điều khiển bus.
12
23
Address
(chu kỳ đầu)
Data
(chu kỳ thứ hai)
Address Truy xuất Data
thời gian
Ghép kênh addr/data
Ghi
Đọc
24
Dạng truyền dữ liệu
Trong trường hợp không ghép kênh: data bus và
addr bus được cầp riêng các đường.
Địa chỉ được đặt lên addr bus và duy trì trong khi data
được đưa lên data bus. Trong hoạt động ghi, data được
đưa lên data bus ngay sau khi địa chỉ đã ổn định trên
addr bus và slave đã nhận ra địa chỉ.Trong hoạt động
đọc, slave sẽ đặt data lên data bus ngay khi nhận ra địa
chỉ của nó và đã lấy được data.
13
25
Address
Data
Data và addr được master
gửi ra trong cùng một chu
kỳ lên các đường khác biệt
Address
Data
thời gian
Ghi
Đọc
26
Dạng truyền dữ liệu
Có một số hoạt động phối hợp trên bus:
Đọc-ghi: đơn giản là một hoạt động đọc và ghi lại ngay
tức thì tại cùng địa chỉ. Địa chỉ được công bố một lần
vào thời điểm ban đầu. Hoạt động này không thể chia
sẻ, nhằm ngăn chặn bất kỳ truy xuất nào đối với phần
tử dữ liệu từ các master khác. Nhằm bảo vệ bộ nhớ
trong hệ thống đa chương.
Đọc sau khi ghi: là một hoạt động cũng không thể chia
sẻ gồm có ghi sau đó đọc lại ngay tại cùng địa chỉ. Mục
đích kiểm tra.
14
27
Address Dataread
Data
write
Address Data write
Data
read
Đọc-ghi
Đọc sau khi ghi
28
Dạng truyền dữ liệu
Một số hệ thống bus cũng hỗ trợ truyền data dạng
khối. Trong trường hợp này, một chu kỳ địa chỉ với
nhiều chu kỳ dữ liệu theo sau. Phần dữ liệu đầu
được đặt vào địa chỉ xác định nào đó, phần sau
được đặt vào các vị trí địa chỉ kế tiếp.
Address Data Data Data
15
29
Front Side Bus và Chipset
BÀI 11B
30
Khái niệm
FSB là tên chỉ các bus địa chỉ và bus data của CPU được
dùng trong các tài liệu của nhà chế tạo. Thuật ngữ này
thường được dùng trong các mainboard của máy PC ngày
nay. Ít khi được dùng trong các hệ thống nhúng.
FSB đóng vai trò kết nối giữa CPU và phần còn lại của
phần cứng máy tính qua một chipset. Chipset là tên để chỉ
một nhóm các vi mạch (chip) đặc biệt, chúng được thiết kế
để làm việc cùng nhau. Chipset thường được chia thành hai
phần, gọi là chipset cầu bắc và chipset cầu nam. Chipset là
điểm kết nối cho tất cả các bus khác trong hê thống. Các
bus như PCI, AGP và memory bus đều kết nối đến chipset
để dữ liệu chuyển qua lại giữa các thiết bị được kết nối. Hệ
thống bus thứ cấp này luôn chạy với tốc độ được suy ra từ
FSB clock, nhưng không cần đồng bộ.
16
31
Khái niệm (tt)
FSB là bus mang data và address giữa CPU
và chip cầu bắc.
Tùy vào bộ xử lý được dùng, một số máy
tính cũng có back side bus nối CPU với
Caches, bus này và cache được nối vào đó
hoạt động nhanh hơn là truy xuất bộ nhớ hệ
thống qua FSB.
32
17
33
Tốc độ FSB
Băng thông hay thông lượng tối đa của FSB được xác đinh
bởi tích của bề rộng đừơng dẫn data, tần số clock và số lần
truyền trong một chu kỳ. Ví dụ data path=32bit, FSB
clock=100MHz và 4 lần truyền/clock thì băng thông là
1600Mbps.
Tần số hoạt động của CPU được xác định bởi một bộ nhân
clock, nhân tốc độ của FSB. Ví dụ tốc độ CPU là 3200
MHz dùng FSB 400 MHz, có nghĩa là CPU được đặt chạy
với tốc độ gấp 8 lần tốc độ FSB. Bằng cách thay đổi FSB
hay bộ nhân clock có thể lấy tốc độ CPU khác nhau.
Cài đặt tốc độ FSB liên quan trực tiếp đến tốc độ bộ nhớ.
Thông thừờng memory bus và FSB có tốc độ bằng nhau.
Tuy nhiên, trong các hệ thống mới tỉ số này có thể là 5:4,
có nghĩa là tốc độ bus bộ nhớ chạy gấp 5/4 lần FSB, ví dụ
FSB là 400MHz thì tốc độ bus bộ nhớ là 500MHz, điều
này đựơc xem như hệ thống là bất đồng bộ.
34
Ưu khuyết điểm
Công nghệ FSB có ưu điểm linh hoạt và giá thành thấp.
Không có giới hạn số lương CPU được đặt lên FSB, cho
dù hiệu suất sẽ không thay đổi một cách tuyến tính xuyên
qua các CPU gắn thêm (do cổ chai)
Ban đầu, FSB này là một trung tâm cho tất cả các thiết bị
hệ thống và CPU. Những năm gần đây bắt đầu xuất hiện
khuynh hướng dùng các bus điểm nối điểm độc lập. FSB
bị AMD chỉ trích như một công nghệ chậm chạp lạc hậu là
nguyên nhân của các cổ chai trong máy tính. Trong khi
một CPU tốc độ cao có thể thực thi chỉ thị với tốc cao,
nhưng nó không thể nạp chỉ thị nhanh như mong muốn khi
truy xuất bộ nhớ và các thiết bị I/O bị giới hạn bởi FSB.
18
35
Ví dụ hệ thống thực tế
Mainboard Gigabyte GA-8iG1000MK
P4 Titan Series Motherboard
36
19
37
38
Bài tập
1.Tìm hiểu hoạt động truyền dữ liệu trên PCI
2.Tìm hiểu hoạt động phân xử bus trên PCI
11
HEÄ THOÁNG XUAÁT NHAÄP
BÀI 11
2
THIEÁT BÒ NGOAÏI VI
Moãi thieát bò ngoaïi vi ñöôïc gaén vaøo
computer qua moät lieân keát ñeán I/O module
Lieân keát ñöôïc duøng ñeå trao ñoåi control,
status vaø data giöõa I/O module vôùi thieát bò
ngoaïi vi.
23
Ñieàu khieån
luaän lyù
Boä ñeäm
Boä bieán ñoåi
Status
(ñeán I/O module)
Control
(töø I/O modue)
Data
Data ñi vaø ñeán töø
moâi tröôøng ngoaøi
Thieáááát bò
ngoaïïïïi vi
4
Coù ba loaiï thieát bò ngoaïi vi:
Human-readable
Machine-readable
Communication
35
I/O module
Laø thöïc theå naèm trong maùy tính chòu traùch
nhieäm ñieàu khieån moät hay nhieàu thieát bò
ngoaïi vi ñeå trao ñoåi data vôùi main
memory vaø caùc register cuûa CPU=> I/O
module coù 2 interface
6
I/O module
Address bus
Data bus
Control bus
System bus
Caùc lieân keát
ñeán thieát bò
ngoaïi vi
Moââââ hình chung cuûûûûa I/O module
47
Yeâu caàu toái thieåu veà chöùc naêng cuûa I/O
module:
Ñieàu khieån vaø ñònh thôøi
Truyeàn thoâng vôùi CPU
Truyeàn thoâng vôùi ngoaïi vi
Ñeäm döõ lieäu
Phaùt hieän loãi
(ví duï)
8
Thanh ghi data
Thanh ghi status/control
I/O
logic
Logic giao tieáp
thieát bò ngoaïi vi
Logic giao tieáp
thieát bò ngoaïi vi
Giao tieáp vôùi
system bus
Data bus
Addr bus
Control bus
Data
Status
Conrol
Data
Status
Conrol
Sô ñoàààà khoáááái cuûûûûa moäääät I/O module
59
Kyõ thuaät thao taùc I/O
Programmed I/O: data ñöôïc trao ñoåi giöõa
CPU vaø I/O module. CPU thöïc thi moät
chöông trình maø qua ñoù ñieàu khieån hoaït
ñoäng cuûa I/O
I/O duøng ngaét ñieàu khieån
I/O duøng DMA: I/O module vaø boä nhôù trao
ñoåi data moät caùch tröïc tieáp.
10
Programmed I/O
CPU phaùt leänh ñeán I/O module.
I/O module thöïc hieän taùc vuï theo yeâu caàu
vaø ñaët caùc bit thích hôïp trong thanh ghi
traïng thaùi.
Ñònh kyø CPU phaûi kieåm tra traïng thaùi cuûa
I/O module cho ñeán khi nhaän thaáy taùc vuï
yeâu caàu ñaõ hoaøn taát.
611
Programmed I/O (tt)
I/O command,I/O instruction
Ñeå thöïc hieän moät instruction lieân quan ñeán I/O, CPU
phaùt ra moät addr + I/O command
Coù boán loaïi I/O command
Control
Test
Read
Write
Moät I/O instruction töông öùng vôùi moät I/O command
12
Programmed I/O (tt)
Memory-mapped I/O, Isolated I/O
Laø hai cơ chế ñòa chæ trong tröôøng hôïp duøng chung bus.
Memory-mapped I/O: chæ coù moät khoâng gian ñòa chæ
chung cho boä nhôù vaø thieát bò I/O, duøng caùc instruction
truy xuaát gioáng nhau.
Isolated I/O: toaøn boä khoâng gian ñòa chæ khaû duïng cho caû
hai, söû duïng caùc I/O command ñaëc bieät ñeå kích hoaït caùc
I/O command line treân bus
713
Addr Instruction operand
200 Ld AC “1”
Store AC 501
202 Ld AC 501
Branch if Sign=0 202
Ld AC 500
(a) Memory-mapped I/O
Addr Instruction operand
200 Start I/O 4
201 Test I/O 4
Branch Not Ready 201
In 4
(b) Isolated I/O
7 6 5 4 3 2 1 0
500 Thanh ghi data nhaäp
7 6 5 4 3 2 1 0
501 Thanh ghi traïng thaùi vaø ñieàu khieån
1: baét ñaàu ñoïcsign=1:saün saøng
14
Interrupt-driven I/O
CPU phaùt ra leänh I/O vaø chuyeån sang phuïc
vuï taùc vuï khaùc.
I/O module ngaét CPU ñeå yeâu caàu phuïc vuï
Interrupt controller
815
Cô cheá DMA
I/O Module Main Memory
Duøng DMA module
Khi CPU muoán ñoïc hay ghi moät khoái data, noù
phaùt ra moät leänh ñeán DMA module keøm theo caùc
thoâng tin sau:
Yeâu caàu laø ñoïc hay ghi
Ñòa chæ cuûa thieát bò
Vò trí baét ñaàu trong boä nhôù
Soá löôïng töø ñöôïc ñoïc hay ghi
16
Data count
Data register
Addr register
Control logic
Data
lines
Addr
lines
DMA REQ
DMA ACK
INTR
Read
Write
Sô ñoà khoái
DMA module
tieâu bieåu
917
Cô cheá DMA (tieáp theo)
CPU chuyeån sang coâng vieäc khaùc sau khi
ñaõ chuyeån leänh ñeán DMA module
DMA module ñöôïc giao phoù toaøn boä hoaït
ñoäng I/O, noù truyeàn/nhaän toaøn boä khoái döõ
lieäu laàn löôït töøng töø moät vôùi boä nhôù.
Khi hoaït ñoäng truyeàn/nhaän döõ lieäu hoaøn
taát DMA module göûi moät ngaét ñeán CPU.
18
Cô cheá DMA (tt)
DMA module caàn laáy ñieàu khieån bus ñeå truyeàn
data.
DMA module duøng bus khi CPU khoâng söû duïng
hoaëc buoäc CPU vaøo traïng thaùi treo taïm thôøi
Kyõ thuaät buoäc CPU treo taïm thôøi laø phoå bieán vaø
ñöôïc xem nhö thöïc hieän moät chu kyø chieám höõu
(cycle-stealing), DMA module chieám moät chu kyø
bus.
10
19
Nhöõng thôøi
ñieåm DMA
chieám höõu
Thôøi ñieåm
ngaét
Laáy leänh Giaûi maõ
leänh
Laáy toaùn
haïng
Thöïc thi
leänh
Löu keát
quaû
Xöû lyù
ngaét
Processor
Cycle
Processor
Cycle
Processor
Cycle
Processor
Cycle
Processor
Cycle
Processor
Cycle
Processor
Cycle
Instruction Cycle
20
Caùc caáu hình coù theå cuûa DMA
Duøng moät DMA module duøng chung
Duøng nhieàu DMA module
Duøng I/O bus giao tieáp vôùi moät DMA
module
11
21
CPU DMA module I/O I/O Memory
CPU DMA module
I/O
DMA
module Memory
I/O I/O
CPU DMA module Memory
I/O I/O I/O
I/O bus
System bus
22
I/O channel
Söï tieán boä trong chöùc naêng I/O:
CPU ñieàu khieån tröïc tieáp moät thieát bò ngoaïi vi
Theâm vaøo moät I/O module. CPU duøng I/O ñöôïc laäp trình
khoâng caàn ngaét
Theâm vaøo I/O module, söû duïng ngaét, CPU khoâng caàn chôø hoaït
ñoäng I/O
I/O module ñöôïc trao ñoåi tröïc tieáp vôùi boä nhôù qua DMA, göûi
khoái data khoâng thoâng qua CPU, ngoaïi tröø thôøi ñieåm ñaàu vaø
cuoái.
I/O module ñöôïc caûi tieán ñeå trôû thaønh moät boä xöû lyù coù thaåm
quyeàn rieâng, vôùi taäp leänh ñaëc bieät daønh cho I/O. CPU chæ cho
boä xöû lyù naøy thöïc hieän moät chöông trình trong boä nhôù
I/O module coù boä nhôù cuïc boä vaø thöïc söï laø moät maùy
tính(terminal)
12
23
I/O Channel (tt)
Moät I/O module nhaän laáy haàu heát caùc xöû
lyù chi tieát vaø thöïc hieän moät giao thöùc möùc
cao ñöôïc goïi laø moät I/O channel hay I/O
processor
I/O channel laø môû roäng khaùi nieäm DMA.
Moät I/O channel coù khaû naêng thöïc thi caùc
leänh I/O, ñieàu khieån toaøn boä caùc hoaït ñoäng
I/O
24
Caùc ñaëc tính cuûa I/O channel
Caùc Inst I/O naèm treân boä nhôù chính,ñöôïc thöïc
hieän bôûi boä xöû lyù coù muïc ñích ñaëc bieät naèm ngay
treân I/O channel.
CPU chæ ra chöông trình trong boä nhôù cho I/O
channel
Chöông trình seõ chæ ra thieát bò, vuøng nhôù löu tröõ,
thöù töï vaø caùc thao taùc caàn tieán haønh trong ñieàu
kieän loãi naøo ñoù. I/O chanel theo caùc chæ thò naøy
ñeå ñieàu khieån hoaït ñoäng truyeàn/nhaän data.
13
25
Hai kieán truùc I/O channel phoå duïng
Selector
I/O
controller
I/O
controller
Multiplexor
I/O
controller
I/O
controller
I/O
controller
I/O
controller
Data vaø Addr
Channel ñeán
Main memory
Ñöôøng daãn
tín hieäu ñieàu
khieån ñeán
CPU
(a) Selector
(b) Multiplexor
26
Giao tieáp vôùi ngoaïi vi
Phaûi phuø hôïp vôùi baûn chaát hoaït ñoäng cuûa ngoaïi
vi
Ñaëc tính quan troïng nhaát laø noái tieáp hay song
song (serial vaø parallel)
I/O module phaûi daøn xeáp ñoái thoaïi vôùi ngoaïi vi.
Ñoái thoaïi toång quaùt cho moät hoaït ñoäng ghi nhö
sau:
I/O module göûi moät tín hieäu ñieàu khieån yeâu caàu
truyeàn data
Ngoaïi vi phuùc ñaùp ACK
I/O module truyeàn data
Ngoaïi vi baùo nhaän cho töøng data nhaän ñöôïc
14
27
Hai giao tieáp quan troïng
SCSI (Small Computer System Interface)
1394 Serial Bus
1KỸ THUẬT ỐNG DẪN
(PIPELINE)
BÀI 13
Khái niệm
Để tăng tốc độ sản xuất Dây chuyền sản xuất
Dây chuyền có nhiều công đoạn
Các công đoạn có thể làm việc đồng thời
=> Quá trình sản xuất theo kiểu dây chuyền như vậy
được gọi là pipelining
Quá trình thực thi chỉ thị cũng có nhiều công đoạn
và có thể áp dụng khái niệm pipeline
2Ví dụ các công đoạn trong một chu
kỳ chỉ thị
FI (Fetch Instruction)
DI (Decode Instruction)
CO (Calculate Operands)
FO (Fech Operands)
EI (Execute Instruction)
WO (Write Operand)
Pipeline 6 tầng
3Kiến trúc máy DLX
32-bit GPRs: Có 32 thanh ghi có mục đích tổng
quát, R0,R2.R31
32 thanh ghi FPRs
Data: 8,16,32 bit, floating point 32 hay 64 bit
Có thể địa chỉ theo byte
Địa chỉ 32 bit
Big endian mode
Kiến trúc DLX (tt)
ADD R1, R2, R3 AddRegs[R1] <- Regs[R2]+Regs[R3]
ADDI R1, R2, #3 Add immediate Regs[R1] <- Regs[R2] + 3
LHI R1, #42 Load high immediate Regs[R1] <- 42##016
SLLI R1, R2, #5 Shift left logical immediate
Regs[R1] <- Regs[R2] << 5
SLT R1, R2, R3 Set less than if (Regs[R2]<Regs[R3])
Regs[R1] <- 1
else Regs[R1] <- 0
4Kiến trúc DLX (tt)
Instruction fetch cycle (IF)
Instruction decode (ID)
Execution (EX)
Memory access (MEM)
Write-back (WB)
Datapath
5Datapath(tt)
Pipeline cơ bản cho DLX
6Các hạn chế khi độ sâu gia tăng
Thời gian thực thi không giảm
Các tầng không bằng nhau
Trễ do chốt
Các tình huống rủi ro
(Hazards)
Hazard ngăn cản luồng chỉ thị thực
thi trong chu kỳ được gán
Có ba loại hazard:
Hazard cấu trúc
Hazard dữ liệu
Hazard điều khiển
7Hazard cấu trúc
Khi có xung đột tài nguyên
Có đơn vị chức năng không có khả năng pipeline
Tài nguyên không thể đáp ứng đủ
Data Hazard
Xảy ra khi pipeline thay đổi thứ tự đọc/ghi
đối với các tóan hạng khác với thứ tự khi
thực thi các chỉ thị này trên máy
nonpipeline.
8Data Hazard (tt)
Control Hazard
Khi có sự rẽ nhánh có thể không thay đổi
PC như mong muốn.
9Hazard
Hazards khiến cho phải trì hõan hoạt động.
Bộ xử lý có thể dừng hoạt động vì các sự
kiện:
Cache miss: dừng tất cả các chỉ thị trên pipeline
trước và sau chỉ thị gây ra cache miss
Hazard: khi chỉ thị bị dừng thì các chỉ thị sau
nó cũng dừng.
Pipeline tuyến tính
Taùc vuï T ={T1, T2,Tk}
Quan heä tröôùc sau: vaøi taùc vuï Tj khoâng theå
thöïc hieän ñöôïc cho ñeán khi vaøi taùc vuï Ti tröôùc
ñoù hoaøn taát (i<j)
Quan heä tröôùc sau tuyeán tính: Taát caû caùc taùc
vuï Ti phaûi hoaøn taát
Moät pipe line tuyeán tính coù theå xöû lyù moät loaït
caùc taùc vuï con coù quan heä tröôùc sau tuyeán tính
10
S1 S2 Sk
Choát
Choát taùch bieät giöõa caùc taàng laø caùc thanh ghi toác ñoä cao naém
giöõ caùc keát quaû lieân thoâng giöõa caùc taàng. Luoàng thoâng tin giöõa
caùc taàng ñöôïc ñieàu khieån bôûi moät ñoàng hoà chung aùp ñaët vaøo
caùc choát moät caùch ñoàng thôøi.
Chu kyø ñoàng hoà
Goïi Ti laø thôøi gian treã taïi taàng Si, goïi Tl laø
thôøi gian treã taïi moãi choát giao tieáp. Chu kyø
ñoàng hoà ñöôïc ñònh nghóa
T = max {Ti}k + Tl = Tm + Tl
Nghòch ñaûo cuûa T laø taàn soá cuûa boä xöû lyù
pipeline
11
T11 T12 T13 T14 T15 T16
T21 T22 T23
T31
T41
T51
Khoâng
gian
Thôøi
gian
Tij taùc vuï con thöù i trong taùc vuï thöù j
T61
Khi pipeline ñöôïc laøm ñaày noù xuaát keát quaû
trong 1 chu kyø
Lyù töôûng moät pipeline k taàng coù theå xöû lyù n taùc
vuï trong Tk=k + (n-1) chu kyø. Trong ñoù k ñeå
laøm ñaày hay hoaøn taát taùc vuï thöù nhaát vaø n-1 ñeå
hoaøn taát n-1 taùc vuï coøn laïi.
Ñoái vôùi boä xöû lyù nonpipeline thì Tn= n.k
Ñoä taêng toác S=Tn/Tk
1THỰC TẬP
Tìm hiểu và sử dụng các phần mềm CPUZ,
Portable Everest, HDtune để kiểm tra tổng
quát máy tính
Nội dung 1
2Nội dung 2
Tìm hiểu và sử dụng bộ mô phỏng máy tính
MARIE
Dùng hợp ngữ MARIE để viết chương trình
Chạy chương trình
Theo dõi hoạt động
Máy MARIE (the Machine Architecture
that is Really Intuitive and Easy )
Các thuộc tính kiến trúc:
Binary, biểu diễn data theo số bù 2.
Stored program, chỉ thị và data có chiều dài (words) cố
định.
Bộ nhớ chính địa chỉ hóa theo word, dung lượng 4K words.
data word có chiều dài 16-bit.
16-bit instructions, 4-bit cho opcode và 12-bit cho địa chỉ.
16-bit arithmetic logic unit (ALU).
Có bảy thanh ghi điều khiển và dữ liệu
3Các thanh ghi trong MARIE
Accumulator, AC, 16-bit , lưu toán tử điều kiện
(ví dụ “nhỏ hơn”) hay một toán hạng của các
chỉ thị có hai toán hạng.
MAR, 12-bit, lưu địa chỉ bộ nhớ của chỉ thị hay
toán hạng.
MBR, 16-bit, lưu data sau khi lấy từ bộ nhớ hay
trước khi ghi vào bộ nhớ.
Các thanh ghi (tt)
Program counter, PC, 12-bit.
Instruction register, IR,
Input register, InREG, 8-bit, lưu data đọc từ
một thiết bị nhập.
Output register, OutREG, 8-bit, lưu data sẵn
sàng cho thiết bị xuất
4
5Jump Indirect<indirect
addressJumpIC
Add Indirect<indirect
address>AddIB
Clear the AC to all zerosClearA
Jump to operand addressJump9
Skip the next instruction when AC > 0800
Skip the next instruction when AC = 0400
Skip the next instruction when AC < 0000
Skipcond8
Stop the MARIE machineHalt7
Output contents of AC to the displayOutput6
Input a value from the keyboard into ACCESS-LISTInput5
Subtract contents of operand address from ACCESS-LISTSubt4
Add contents of operand address to ACCESS-LISTAdd3
Store contents of AC at operand addressStore2
Load contents of operand address into ACCESS-LISTLoad1
Jump to subroutine at operand address + 1
(Saves return address at operand address)JnS0
DescriptionOperandInstruction
Opcode
(Hex
)
Lưu ý rằng chỉ thị Skipcond, Jump, và JumpI thay đổi tuần tự của chương trình,
được dùng khi muốn thực hiện điều gì đó tùy vào giá trị của dữ liệu.
1. Viết chương trình xuất ra số lớn nhất trong
chuỗi 5 số a,b,c,d và e được nhập vào từ bàn
phím.
2. Viết chương trình nhân hai số a và b
TAÄP LEÄNH CUÛA MAÙY TÍNH IAS_Von Neumann
Caùc leänh chuyeån döõ lieäu
Maõ leänh Cuù phaùp Muïc ñích
00001010 Load MQ Chuyeån noäi dung cuûa thanh ghi MQ vaøo thanh ghi AC
00001001 Load MQ,M(X) Chuyeån noäi dung cuûa vò trí boä nhôù X vaøo MQ
00100001 Stor M(X) Chuyeån noäi dung cuûa AC vaøo vò trí nhôù X
00000001 Load M(X) Chuyeån noäi dung taïi vò trí X vaøo AC
00000010 Load –M(X) Chuyeån –M(X) vaøo AC
00000011 Load |M(X)| Chuyeån giaù trò tuyeät ñoái cuûa M(X) vaøo AC
00000100 Load -|M(X)| Chuyeån -|M(X)| vaøo AC
Caùc leänh reõ nhaùnh voâ ñieàu kieän
00001101 Jump M(X,0:19) Laáy chỉ thị keá tieáp laø phần traùi cuûa M(X)
00001110 Jump M(X,20:39) Laáy chỉ thị keá tieáp laø phần phaûi cuûa M(X)
Caùc leänh reõ nhaùnh coù ñieàu kieän
00001111 Jump+ M(X,0:19) Neáu giaù trò trong AC laø khoâng aâm thì laáy chi thị
keá tieáp laø phần traùi cuûa M(X)
00010000 Jump+ M(X,20:39) Neáu giaù trò trong AC laø khoâng aâm thì laáy chi thị
keá tieáp laø phần phaûi cuûa M(X)
Caùc leänh tính toaùn
00000101 Add M(X) Coäng M(X) vôùi AC vaø ñaët keát quaû vaøo AC
00000111 Add |M(X)| Coäng |M(X)| vôùi AC vaø ñaët keát quaû vaøo AC
00000110 Sub M(X) Tröø AC ñi M(X), ñaët keát quaû taïi AC
00001000 Sub |M(X)| Tröø AC ñi |M(X)|, ñaët keát quaû taïi AC
00001011 Mul M(X) Nhaân M(X) vôùi MQ; ñaët caùc bit coù yù nghóa lôùn
nhaát vaøo AC vaø caùc bit coù nghóa thaáp hôn vaøo
MQ
00001100 Div M(X) Chia AC cho M(X); ñaët thöông soá vaøo MQ vaø
phaàn dö vaøo AC
00010100 LSH Nhaân AC cho 2, dòch traùi moät vò trí bit
00010101 RSH Chia AC cho 2, dòch phaûi moät vò trí bit
Caùc leänh thay ñoåi ñòa chæ
00010010 Stor M(X,8:19) Thay theá phaàn ñòa chæ traùi taïi M(X) baèng 12 bit
tính töø beân phaûi cuûa AC
00010011 Stor M(X,28:39) Thay theá phaàn ñòa chæ phaûi taïi M(X) baèng 12
bit tính töø beân phaûi cuûa AC
Các file đính kèm theo tài liệu này:
- tailieu.pdf