các thành phần cơ bản của máy tính
CPU
Bộ nhớ chính
Module I/O
System Bus
máy tính có bn thành phần cơ bản
4 thành phần cơ bản
Module I/O có công dụng
giúp CPU, bộ nhớ tiếp xúc với thiết bị ngoại vi
các thành phần trong CPU
Bộ điều khiển
ALU
thanh ghi (bộ nhớ tạm thời)
kết nối bên trong
Máy tính đầu tiên
ENIAC
// 1943-1946, hệ thập phân
có bn giai đoạn trong lịch sử máy tính
4 hoặc 6
các giai đoạn trong lịch sử máy tính
bóng chân không
bóng bán dẫn
mạch tích hợp (vừa và nhỏ, lớn, rất lớn, siêu lớn)
Kiến trúc Von Neumann
nằm trong giai đoạn 1
chương trình lưu trong bộ nhớ
máy tính IAS
4 thành phần: MM, ALU (hệ 2) , CU, I/O
giai đoạn 2 trong lịch sử máy tính
sử dụng bóng bán dẫn
nhỏ hơn, rẻ hơn, ít tản nhiệt hơn
có ngôn ngữ chương trình bậc cao
giai đoạn 3 trong lịch sử máy tính
mạch tích hợp (tích hợp rất nhiều bóng bán dẫn trong 1 con chip)
dựa vào số lượng bóng bán dẫn để chia mức độ, quy mô
Định luật Moore
1965
số lượng transistors trên 1 con chip tăng gấp đôi mỗi 18 tháng
bộ nhớ bán dẫn
tạo từ bóng bán dẫn
1970
đọc k phá hủy
dung lượng tăng, chạy nhanh
thời đầu thì giá cao
chip đơn lớn nhất hiện tại 1T
trong các họ vi xử lý thì
mọi thứ đều tăng, chỉ có kích thước của transistor thì được giảm
// clock speeds dậm chân, để tập trung phát triển về bộ nhớ
clock speed
xung nhiệt cao, tốc độ xử lý nhanh nhưng điện cao, giá cả cao
MIPS = (Số lệnh thực thi) / (Thời gian thực thi) * 10^-6
MIPS = f/ (CPI *10 mũ 6)
công thức tính MIPS
chuyển đổi từ hệ 10 qua hệ x
chia lấy ngược tới khi thương =0, nhân lấy xuôi tới khi phần thập phân =0
từ hệ X qua hệ 10
ký tự * trọng số + lại
khi chuyển từ hệ 2 qua hệ 8 hoặc hệ 16
gom bit để chuyển
phần nguyên thì gom từ phải
phần thập phân thì gom từ trái
cộng trừ nhị phân
1+1=0 (nhớ 1)
0 - 1 =1 (mượn 1)
số nhị phân có dấu - số bù hai
đảo bit cộng 1
số nhị phân có dấu n bit với phương pháp Dấu và độ lớn
bit đầu thể hiện dấu, 1 là âm, 0 là dương
n-1 bit còn lại thể hiện giá trị
phạm vi biểu diễn của số nhị phân có dấu n bit
từ - 2 mũ (n-1) đến 2 mũ (n-1) -1 (số bù 2)
từ - 2 mũ (n-1) +1 đến 2 mũ (n-1) -1 (dấu và độ lớn)
tìm giá trị của số âm (dãy bit có bit đầu là 1)
cách 1: khai triển bth, nhưng bit lớn nhất *(-1)
cách 2: đảo bit+1 được số dương cùng biên độ
cách mở rộng bit đối với số âm mà không thay đổi giá trị
thêm số 1 ở trước
đối với số không dấu
nếu có nhớ ra ngoài thì phép tính sai
đối với số có dấu
nếu cộng hai số cùng dấu ra khác dấu thì phép tính sai
kí hiệu khoa học
N = ± M * X mũ E
( 1<=M<X)
M là phần định trị
X là cơ số
số dấu phẩy động kiểu đơn
32 bit
1 - 8 - 23 s - e - m dấu mũ định trị
nếu m còn dư bit thì thêm 0 vào sau
e =E+127
m là phần thập phân của M
công thức xác định giá trị số thực
X= (-1)^S * 1.m * 2^(e-127)
các tiên đề, định lý cơ bản trong đại số BOOLE
x+(y.z)=(x+y).(x+z)
x+1=1
x. x bù =0
x+x=x
x*x=x
x+x.y=x
x.(x+y)=x
x + (bù x *y)=x+y
x nhân (bù x +y)=x nhân y
x.y +bù x .z +y.z=x.y+bù x .z
định lý de morgan
bù tổng là tích
bù tích là tổng
cổng logic
cổng NAND
= 0 nếu mọi số =1
=1 nếu tồn tại 1 số =0
cổng XOR
= 1 nếu số đầu vào =1 lẻ
=0 nếu số đầu vào = 1 chẵn
ghép cổng logic
đối với cổng NAND,
1 NAND →NOT, 2 NAND →AND, 3 NAND→OR
đối với cổng NOR
1 NOR → NOT, 2 NOR →OR, 3 NOR →AND
bộ nhớ đánh địa chỉ theo từ
từ dung lượng tìm số bit
lấy dung lượng bộ nhớ chia cho số bit 1 từ →số từ
→ số bit địa chỉ là số mũ của số từ
từ số địa chỉ từ →dung lượng
2 mũ số địa chỉ từ ra số từ
số từ *số bit mỗi từ →dung lượng
bộ nhớ đánh địa chỉ theo byte
từ dung lượng ra số địa chỉ từ
log2(dung lượng)
từ số địa chỉ từ ra dung lượng
dung lượng = 2 mũ (số địa chỉ từ)
các thanh ghi trong CPU bao gồm
thanh ghi đặc biệt (có giá trị sẵn)
PC: bộ đếm chương trình
IR
MAR
MBR
I/O AR
I/O BR
thanh ghi chung (lưu giá trị tạm thời)
chức năng cơ bản của máy tính:
thực hiện chương trình
4 loại câu lệnh
đọc, ghi bộ nhớ
nhập xuất dữ liệu
xử lý dữ liệu
điều khiển (nhảy, rẽ nhánh, kiểm tra)
Giản đồ thời gian của một chu kỳ lệnh
b1: tính toán địa chỉ câu lệnh
b2: lấy lệnh
b3: giải mã lệnh
b4: tính toán địa chỉ toán hạng
b5: lấy toán hạng
b6: thực hiện phép toán
b7: tính toán địa chỉ toán hạng kết quả
b8: lưu kq
b9: ktr ngắt
b10: ngắt
ngắt
tạm dừng hoạt động CPU trong một thời gian ngắn để ngắt
các loại ngắt
ngắt cứng (phần lớn) (do TBNV) (không báo trước)
ngắt mềm (do chương trình) (không báo trước)
ngắt khác (báo trước)
mục đích của ngắt
tối ưu hóa việc sử dụng tài nguyên trong môi trường (CPU), tránh CPU nhàn rỗi khi các thiết bị I/O thực hiện
CPU kiểm tra có ngắt hay không khi nào?
CPU sẽ kiểm tra có ngắt hay không tại cuối chu kỳ thực hiện mỗi lệnh
Cơ chế ngắt (2)
Ngắt tuần tự
Ngắt ưu tiên
bus interconnection
kết nối các thành phần trong máy tính
các loại bus interconnection
đọc
ghi
nhập dl
xuất dl
I/O với bộ nhớ
bus structure
bus dl: truyền dl →quyết định tốc độ
bus địa chỉ: truyền địa chỉ →dl bộ nhớ tối đa mà máy tính có thể truy cập
control lines
type bus
dedicated: riêng biệt
multiplexed: dùng chung
method of arbitration
centralized: tập trung (chỉ 1 bộ abiter)
distributed: phân tán (mỗi thiết bị 1 abiter)
bus abiter: điều khiển, phân quyền sử dụng bus
các thành phần của lệnh máy
Opcode (mã hoạt động) (luôn có)
Địa chỉ toán hạng nguồn
địa chỉ toán hạng đích
địa chỉ của câu lệnh tiếp theo mà nó thực hiện (nằm trong nhóm lệnh control)
không phải câu lệnh nào cx chứa đủ
toán hạng nguồn và toán hạng đích có thể nằm ở
bộ nhớ
I/O device
thanh ghi
immediate
các nhóm lệnh
xử lý dữ liệu (+-x:, and or xor not…)
lưu trữ dữ liệu
di chuyển dl (làm việc với I/O nhập xuất)
điều khiển
ngôn ngữ assemble
là ngôn ngữ bậc thấp, quan hệ 1:1 với mã máy
move A,B
A=B
mode địa chỉ (7)
immediate (0 truy cập bộ nhớ, 0 truy cập thanh ghi)
direct (1 truy cập bộ nhớ, 0 truy cập thanh ghi)
indirect (2 truy cập bộ nhớ, 0 truy cập thanh ghi)
mode thanh ghi (0 truy cập bộ nhớ, 1 truy cập thanh ghi)
mode thanh ghi gián tiếp (1 truy cập bộ nhớ, 1 truy cập thanh ghi)
displacement (hằng số + nội dung thanh ghi) (1 truy cập bộ nhớ)
implicit (0 truy cập bộ nhớ)
thứ tự nhanh chậm của các cách đánh mode địa chỉ
immediate
thanh ghi
direct
thanh ghi gián tiếp
indirect
displacement
[BX]15
[BX +15]
MOV AL, OxAB
MOV AH, OxCD
CDAB
thanh ghi
có 2 loại
thanh ghi cờ trạng thái
lưu trạng thái kết quả của CPU sau khi thực hiện mỗi lệnh
mỗi cờ 1 bit, tập trung tất cả vào 1 thanh ghi
các loại cờ:
Sign: 1 nếu là số âm
Zero: 1 nếu kết quả là 0
Carry: 1 nếu có nhớ ra ngoài
Equal: nếu ss hai số = nhau thì 1
overflow: 1 nếu + số bù 2 k đủ bit
Harry- carry
pipelining (kỹ thuật ống dẫn)
tăng tốc độ xử lý mà không đụng đến phần cứng
có n câu lệnh, pp p bước thì tổng có p+n-1 bước
có n câu lệnh, p bước, k pp thì có p*n bước
trường hợp ss pp và k pp mà k thay đổi CPI, f thì sẽ là (p*n)/(p+n-1) và khi n rất lớn thì đáp án tới p
trường hợp có thay đổi: (CPI_KPL x fPL / CLP_PL x f_KPL).
rủi ro pipeline (3 loại)
rủi ro về tài nguyên: có 2 hay nhiều lệnh truy cập vào tài nguyên phần cứng (CPU, bộ nhớ, I/O, bus) cùng một lúc →giải quyết: dời
rủi ro về dữ liệu: xảy ra khi câu lệnh sau cần dùng kết quả của câu lệnh trước nhưng khi cần dùng thì câu lệnh trước chưa có kết quả → giải quyết : dời
rủi ro về điều khiển: là rủi ro khi trong CT có lệnh nhảy hoặc lệnh rẽ nhánh (gọi CT con, vòng lặp) → do thực hiện pp nên sẽ có 1 số câu lệnh k mong muốn đc thực hiện → giải quyết: sau kiểm tra mới pp
bộ nhớ máy tính
địa điểm: trong - ngoài
dung lượng: word - byte
đơn vị truy cập: từ - block
phương thức truy cập bộ nhớ (4)
truy cập tuần tự (băng cát sét)
truy cập trực tiếp (theo từng file, từng thư mục) (phần cứng)
truy cập random: truy cập ngẫu nhiên theo từng byte, từng từ (bộ nhớ trong)
Associative: truy cập kết hợp (cache)
performance của bộ nhớ
thời gian truy cập: từ lúc gửi yêu cầu cho đến lúc nhận lại được dl
khoảng thời gian giữa hai lần truy cập lt lớn hơn rất nhiều tgian truy cập vì còn đợi bộ nhớ reset
tốc độ dữ liệu truyền bit/s, byte/s
các loại bộ nhớ
bộ nhớ bán dẫn (SSD, RAM,ROM, thẻ nhớ)
bộ nhớ từ
bộ nhớ quang
bộ nhớ quang - từ
đặc tính vật lý của hệ thống bộ nhớ
volatile: khi mất nguồn là mất dữ liệu (RAM)
non volatile: khi mất nguồn k mất dữ liệu (ổ chứng, CD, DVD)
erasable: có thể ghi nội dung mới vào (RAM, ổ cứng, thẻ nhớ)
nonerasable: không thể ghi nội dung mới vào (RAM)
thứ bậc của các bộ nhớ
thanh ghi
cache (chia thành 2)
bộ nhớ chính
đĩa từ
magnetic type
càng xuống dưới càng xa CPU, tốc độ giảm dần, dung lượng tăng dần
tốc độ truy cập nhanh, giá cao hơn
dung lượng lớn hơn, giá thành nhỏ hơn (cost per bit)
dung lượng càng lớn, thời gian truy cập càng chậm
• Tăng công suất • Tăng thời gian truy cập • Giảm chi phí trên mỗi bit • Giảm tần suất truy cập của bộ nhớ của bộ xử lý
cache memory
tốc độ truy cập cao, nằm giữa CPU và bộ nhớ chính
không cần qua ht bus
CPU truy cập cache theo hình thức ngẫu nhiên
cache hit: khi CPU cần và từ đó có trong cache
cache miss: khi CPU cần và từ đó không có trong cache thì cache ra bộ nhớ chính lấy, mỗi lần lấy 1 block (truy cập kết hợp)
CPU tới cache: nhanh
cache tới MM: theo từng block, chậm
Thuật toán ánh xạ trong địa chỉ cache
ánh xạ block nào với line nào
ánh xạ trực tiếp: tag/line/word
tính số block trong 1 line →số bit tag
block j qua line i: i=j mod n (với n là số line)
ánh xạ kết hợp toàn phần: tag/word
ánh xạ từng phần: tag/set/word
block j →set i: i=j mod n (n là số set)
block K - way SA: 1 set có K line
replacement policy
thường xuyên ít được sử dụng: LFU →cache hit tương đối cao
LRU: ít được sử dụng →cache hit cao nhất
FIFO
random →cache hit thấp nhất
write policy
write through: mỗi lần CPU ghi dl vào cache đều cập nhật ra bộ nhớ chính
write back: CPU ghi 2 lần liên tiếp vào 1 line thì dl cũ được lưu vào MM →được dùng nhiều hơn
cờ Dirty: line đó đang lưu dl chưa được lưu vào MM
bộ nhớ trong
là bộ nhớ bán dẫn
semiconductor MM
thành phần cơ bản: tế bào nhớ (lưu trữ 1 bit)
địa chỉ cần đọc, tín hiệu đọc : đọc
địa chỉ cần ghi, tín hiệu ghi, dl cần ghi: ghi
phân biệt RAM, ROM
RAM ROM
mất nguồn → mất dl mất nguồn →vẫn còn dl
đọc, ghi chỉ đọc
các loại ROM
PROM: lập trình được 1 lần = công cụ của nsx
EPROM: ghi dl vào đc, xóa đc và xóa = tia cực tím. Muốn ghi 1 byte/1 từ thì cx phải xóa hết con chip
EEPROM: đắt nhất, chứa hệ điều hành trong đth thông minh, xóa = xung điện. Muốn xóa 1 byte/ 1 từ thì xóa cái đó thôi
Flash Memory: nằm trong thẻ nhớ, xóa = xung điện, xóa theo từng khối
ROM
giống và khác nhau của DRAM (Ram động), SRAM (ram tĩnh)
giống: DRAM, SRAM mất nguồn →mất dl
DRAM:
1 tế bào nhớ gồm 1 bóng bán dẫn và 1 tụ điện (bit 0, bit 1)
vẫn có khả năng bị mất dl dù đang có nguồn (do tụ điện)
cơ chế làm tươi dl
dl của DRAM lớn hơn
SRAM
1 tế bào nhớ gồm 4,6 bóng bán dẫn
tốc độ truy cập nhanh hơn
giá cao hơn
dung lượng bộ nhớ và tổ chức bộ nhớ
DRAM
DRAM dùng chung bit địa chỉ hàng và cột →giảm được số chân đia chỉ nhưng kết nối phức tạp
Nhược điểm: tốn thêm chu kỳ để lấy cột sau khi lấy hàng mà chu kỳ rất nhỏ nên ưu >nhược
MM organization
cơ chế sửa lỗi
hamming error correcting code: chỉ dùng được trong trường hợp 1 lỗi
C = log2D +1
C: check bits
D: data bits
C= log2D+2
tổng số bit 1 là chẵn
DED: có lỗi mà bit tổng không đổi → có 2 lỗi
tổ chức DRAM nâng cao
DDR DRAM có thể gửi 2 đơn vị dữ liệu trong 1 chu kỳ
magnetic disk
ổ từ: HDD: lớp tráng là lớp từ
ổ cứng: hình tròn, 1 chồng ổ đĩa chồng lên nhau
quay mới hoạt động được
đàu đọc/ghi: đi đường thẳng, di chuyển giữa các track thì bk là đường đi lớn nhất
sectors: đơn vị đọc/ghi của ổ cứng
disk performance parameters
thời gian tìm: tgian để đầu ghi tới đúng track
rotational delay: tgian để ổ đĩa quay để tới đúng sectors
accesstime = tgian tìm +rotational delay
transfer time: thời gian để đọc/ghi
đặc tính vật lý của ổ HDD (ổ đĩa cứng)
head motion
fixed head: mỗi track 1 đầu đọc riêng
movable head
Disk portability
không thể tháo trời trong khi đang hoạt động
có thể……………….
RAID
dùng nhiều ổ đĩa cùng 1 lúc →tăng dl, tăng tốc độ truy cập, sửa lỗi, back up dl
có 7 bậc RAID
striping: lưu dl trải dài, level O, yêu cầu N đĩa, không cso back up
mirroring: đắt nhắt, an toàn nhất, level 1, yêu cầu 2N đĩa, có back up
parallel access: level 2,3; 1 ứng dụng có thể truy cập nhiều ổ. Level 2 yêu cầu N+m, m=log2N +1 để sửa lỗi, level 3 yêu cầu N+1 đĩa
independent access: nhiều ứng dụng có thể truy cập cùng 1 lúc nhưng mỗi ứng dụng 1 đĩa, level 4,5,6. Level 4,5 yêu cầu N+1 đĩa. Level 6 yêu cầu N+2 đĩa. Level 5,6 không lưu tập trung 1 ổ mà dàn trãi trên tất cả
SSD (ổ bán dẫn)
flash- memory based SSD
NOR flash memory
đọc, ghi theo byte
NAND flash memory
đọc ghi theo từng block nhỏ, dùng trong usb, memory card, ssds
so sánh SSD và HDD
SSD HDD
nhanh hơn dl lớn hơn
bền hơn
k có ồn
đắt hơn
optical memory: ổ quang (bộ nhớ ngoài)
làm bằng nhựa, tráng lớp bảo vệ
dùng tia sáng để ghi dl
DL DVD cao hơn CD
dùng bước sóng khác nhau để ghi → DL khác nhau → giá khác nhau
các hệ thống nhớ máy tính có thể có ở
các thanh ghi
bộ nhớ trong
bộ nhớ ngoài
vì sao cần dùng module I/O?
vì đơn vị dl khác nhau, tốc độ giữ lý khác nhau giữa máy tính và TBNV
chúc năng của I/O module function
giao tiếp với bộ xử lý
giao tiếp với TBNV
đệm dl
control and timing
kiểm tra, phát hiện lỗi trong quá trình giao tiếp của hai bên
có hỗ trợ DMA, ngoài giao tiếp với CPU, module I/O còn giao tiếp với bộ nhớ
I/O commands
lệnh ktra
lệnh đk
lệnh đọc
lệnh ghi
I/O mapping
bản đồ bộ nhớ: I/O như 1 ô nhớ trong bộ nhớ để đánh địa chỉ
Isolated I/O: I/O tách biệt
dùng 1 vùng nhớ riêng biệt (đánh địa chỉ cho I/O riêng biệt, k liên quan đến bộ nhớ)
cần có lệnh đọc ghi bộ nhớ và đọc ghi I/O riêng biệt
Cơ chế thực hiện I/O (3 loại)
programmed I/O: dùng trong các máy không có ngắt
CPU phải giám sát hoàn toàn các hoạt động của TBNV
gây lãng phí việc sử dụng CPU
Interrupt -driven I/O: sử dụng trong những ht có ngắt, TBNV làm xong thì báo về = 1 cái ngắt, CPU không cần chờ, có thể làm những tác vụ khác
DMA: cho phép module I/O truy cập trực tiếp bộ nhớ, không cần thông qua CPU nhưng vẫn có 1 module hỗ trợ riêng DMA control
sự phát triển của I/O function
không có module I/O
programmed I/O
ngắt I/O
DMA
module I/O mạnh như 1 bộ xử lý
module I/O mạnh như 1 máy tính
parallel orgainizations
4 loại:
SISD: xử lý đơn câu lệnh trên đơn dl
SIMD: xử lý đơn câu lệnh trên đa dl (mảng, vecto)
MISD: xử lý nhiều câu lệnh trên dl đơn
MIMD: xử lý nhiều câu lệnh trên dl đa →xử lý ss
nhiều core chung bộ nhớ
SMP
NUMA
nhiều core khác bộ nhớ
SMP (symmetric multiprocessor)
nhiều bộ xử lý
ht đa bộ xử lý đối xứng
các bộ xử lý có cấu hình, chức năng giống hệt nhau
các bộ xử lý dùng chung bộ nhớ và các TBNV
có thể có bộ nhớ đệm tiêng