Số th c dấu ph y t nh
Quy tắc: ta chuyển đổi từng phần nguyên và lẻ theo quy tắc sau:
o Phần nguyên: Chia liên tiếp phần nguyên cho 2 giữ lại các số dư, Số nhị
phân chuyển đổi sẽ là dãy số dư liên tiếp tính từ lần chia cuối về lần chia
đầu tiên.
o Phần lẻ: Nhân liên tiếp phần lẻ cho 2, giữ lại các phần nguyên tạo thành.
Phần lẻ của số Nhị phân sẽ là dãy liên tiếp phần nguyên sinh ra sau mỗi
phép nhân tính từ lần nhân đầu đến lần nhân cuối.
Ví dụ: Chuyển sang hệ Nhị phân số: 13,625
Thực hiện:
Phần nguyên:32
13:2 = 6 dư 1
6:2 = 3 dư 0
3:2 = 1 dư 1
1:2 = 0 dư 1
=> Phần nguyên của số Nhị phân là 1101
Phần lẻ:
0,625 x 2 = 1,250 Phần nguyên là 1
0,250 x 2 = 0,500 Phần nguyên là 0
0,500 x 2 = 1,000 Phần nguyên là 1 (dừng ở đây vì phân nguyên còn
lại =0)
=> Phần lẻ của số Nhị phân là: 0,101
=> Ta viết kết quả là: (13,625)10 = (1101,101)2
Chú ý: việc chuyển đổi từ hệ thập phân sang hệ Nhị phân không phải luôn
được gọn gàng chính xác, trong trường hợp phép tính chuyển đổi kéo dài, thì tùy
theo yêu cầu về độ chính xác mà ta có thể dùng phép tính ở mức độ cần thiết thích
hợp.
Nhận xét :
Các số dấu phẩy tĩnh chỉ dùng trong các bài toán yêu cầu độ chính xác
không cao và luôn cố định, ví dụ điểm môn học trong trường ĐH CN tính chính xác
đến 1 số sau dấu phẩy (VD : 4,5). Như vậy các điểm sẽ luôn có độ chính xác trong
khoảng đó. Trong thực tế có các bài toán yêu cầu độ chính xác gần như tuyệt đối như
các bài toán trong ngân hàng, trong điều khiển máy bay, vệ tinh, . Các bài toán này
không thể quy định trước một độ chính xác, người ta phải sử dụng số dấu chấm
động, khi đó số các số sau dấu phẩy là không hạn chế về mặt biểu diễn.
VD : 12e-101=12*10-101
Vấn đề là biểu diễn các số dấu chấm đông như trên máy tính vơi cơ số 2
106 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 575 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo trình môn học Cấu trúc máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ực tế khi ta lập trình với các
ngôn ngữ bậc cao, có nhiều cách để gán một giái trị cho một biến:
X = 15 // gán tức thì gia trị 15 cho X
X = y // Gán giá trị cho X thông qua y
X = mang[i // gán giá trị cho X bằng địa chỉ tương đối quan biến
Cách thức để tìm được giá trị và truyền cho X gọi là các cách xác định địa
chỉ, có 7 cách xác định chỉ chính như sau:
a) Chế độ địa chỉ thanh ghi
Dùng thanh ghi như là các toán hạng chứa dữ liệu cần thao tác, tốc độ thực
hiện lệnh rất nhanh vì CPU không mất thời gian tìm kiếm dữ liệu.
Ví dụ:
MOV AL, BL ; AL:= BL
MOV DS, BX ; DS:= BX
ADD AL, DL ; AL:= AL + DL
b) Chế độ địa chỉ tức thì
Toán hạng đích là thanh ghi, hoặc ô nhớ. Toán hạng nguồn là 1 giá trị cụ thể
(hằng số).
Ví dụ:
MOV AL, 0Dh ; AL:=0Dh
47
Lệnh này thường được dùng để nạp dữ liệu cần thao tác vào thanh ghi nào
đó.
c) Chế độ địa chỉ tr c tiếp
Một toán hạng là địa chỉ offset của ô nhớ chứa giá trị cần thao tác. Toán
hạng kia là thanh ghi (không được là ô nhớ).
Ví dụ:
MOV AL, [04FCh] ; đưa vào thanh ghi AL nội dung ô nhớ có địa chỉ logic
; DS:04FCh.
d) Chế độ địa chỉ gián tiếp qua thanh ghi
Một toán hạng là thanh ghi chứa địa chỉ offset của ngăn nhớ chứa giá trị cần
thao tác. Toán hạng kia là thanh ghi (không được là ngăn nhớ).
MOV [BX], AL ; Đưa nội dung thanh ghi AL vào ngăn nhớ có địa chỉ
; offset nằm trong thanh ghi BX.
e) Chế độ địa chỉ tƣơng đối cơ sở
48
Thanh ghi BX, BP và các hằng số là giá trị dịch chuyển để xác định ngăn
nhớ trong DS, SS chứa giá trị cần thao tác.
Ví dụ:
MOV [BX + N], CL; Đưa nội dung thanh ghi CL vào ngăn nhớ có địa chỉ
; offset BX + N (DS:BX + N)
MOV AL, [BP + N] ; Đưa nội ngăn nhớ có địa chỉ offset BP + N vào thanh
; ghi AL (SS:BP + N)
f) Chế độ địa chỉ tƣơng đối chỉ số
Thanh ghi DI, SI và các hằng số là giá trị dịch chuyển để xác định ngăn nhớ
chứa giá trị trong DS cần thao tác.
Ví dụ:
MOV [SI + N], AH ; Đưa nội dung thanh ghi AH vào ngăn nhớ có địa chỉ
; offset tại SI + N (DS:SI + N).
MOV CL, [DI + N] ; Đưa nội dung ngăn nhớ có địa chỉ offset tại DI + N
; (DS:DI + N) vào thanh ghi CL.
g) Chế độ địa chỉ tƣơng đối chỉ số cơ sở
Chế độ địa chỉ này là sự kết hợp cả 2 chế độ địa chỉ trên. Dùng cả thanh ghi
cơ sở và thanh ghi chỉ số để tính địa chỉ toán hạng.
Ví dụ:
MOV [BX + SI + N], AX ; Đưa nội dung thanh ghi AX vào ngăn nhớ có địa
; chỉ offset tại BX + SI + N (DS:BX + SI + N).
MOV CL, [BP + DI + N] ; Đưa nội dung ngăn nhớ có địa chỉ offset tại
; BP + DI + N (DS:BP + DI + N) vào th.ghi CL.
4.3. Hoạt động của CPU
a. Nguyên tắc chung
49
Khi bạn kích đúp vào một biểu tượng nào đó để chạy chương trình thì những
gì sẽ xảy ra là:
1. Chương trình đã lưu bên trong ổ đĩa cứng(hoặc USB/CDROM) sẽ được
đưa vào bộ nhớ RAM. Ở đây chương trình chính là một loạt các chỉ lệnh
đối với CPU.
2. CPU sử dụng mạch phần cứng được gọi là memory controller để tải dữ
liệu chương trình từ bộ nhớ RAM vào CPU.
3. Lúc đó dữ liệu bên trong CPU sẽ được xử lý.
4. Những gì diễn ra tiếp theo sẽ phụ thuộc vào chương trình vừa được nạp.
CPU có thể tiếp tục tải và thực thi chương trình hoặc có thể thực hiện
một công việc nào đó với dữ liệu đã được xử lý, như việc hiển thị kết
quả thực hiện nào đó lên màn hình.
Hình 29: Quy trình chƣơng trình đƣ c lƣu đƣa vào CPU
b. Tải dữ liệu giữa bộ nhớ ngoài và R M
Trước đây, CPU trực tiếp điều khiển việc vận chuyển dữ liệu giữa bộ nhớ
ngoài và RAM. Vì bộ nhớ ngoài thường có tốc độ truy cập thấp hơn so với bộ nhớ
RAM nên nó làm chậm quá trình thực thi chương trình cho cả hệ thống, chính vì vậy
CPU sẽ rất bận một cách vô ích trong việc tải dữ liệu giữa bộ nhớ ngoài và RAM.
Phương pháp này được gọi là PIO, Processor I/O (hay Programmed I/O).
Ngày nay, việc vận chuyển dữ liệu giữa bộ nhớ ngoài và RAM được thực
hiện mà không sử dụng trực tiếp đến CPU, điều này làm cho hệ thống hoạt động
nhanh hơn và CPU dành thời gian thay vì phải chuyển dữ liệu sang làm việc khác.
Phương pháp này được gọi là bus mastering hay DMA (Direct Memory Access).
Đây là giải pháp chuyên biệt cho việc vận chuyển dữ liệu.
Các bộ vi xử lý của AMD dựa trên sockets 754, 939 và 940 (Athlon 64,
Athlon 64 X2, Athlon 64 FX, Opteron và một số mô hình Sempron) có một memory
controller được nhúng bên trong. Điều đó có nghĩa rằng với các bộ vi xử lý này,
CPU truy cập bộ nhớ RAM một cách trực tiếp mà không sử dụng north bridge chip.
50
c. Giải m và th c thi lệnh
Khối tìm nạp (CU) chịu hoàn toàn trách nhiệm về việc nạp các lệnh từ bộ
nhớ. Đầu tiên, nó xem lệnh được yêu cầu bởi CPU có trong L1 instruction cache hay
không. Nếu không có ở đây, nó sẽ vào L2 memory cache. Nếu lệnh cũng không có
trong L2 memory cache thì nó sẽ phải nạp trực tiếp từ bộ nhớ RAM.
Khi bạn bật máy tính, tất cả các cache đều trống rỗng, tuy nhiên khi hệ thống
bắt đầu nạp hệ điều hành, CPU bắt đầu xử lý các lệnh đầu tiên từ ổ cứng và cache
controller bắt đầu nạp lệnh vào cache.
Sau khi khối tìm nạp đã có được lệnh cần thiết cho CPU để được xử lý, nó
gửi lệnh này đến khối giải mã.
Khối giải mã sẽ phân tích và chỉ ra lệnh này thực hiện những nhiệm vụ gì.
Sau khi khối giải mã dịch xong lệnh và lấy được tất cả dữ liệu cần thiết để thực thi
lệnh này, nó sẽ gửi tất cả cùng với MicroCode của lệnh đó đến khối thực thi.
Khối thực thi sẽ thực hiện lệnh này. Trên các CPU hiện đại, bạn sẽ thấy có
nhiều khối thực thi làm việc song song. Điều này nhằm tăng hiệu suất của CPU. Ví
dụ, một CPU có 6 khối thực thi sẽ có thể thực thi đến 6 lệnh song song đồng thời,
chính vì vậy theo lý thuyết nó hoàn toàn có thể thực hiện được một hiệu suất bằng
với 6 bộ vi xử lý mà chỉ có một khối thực thi.
4.4 Kiến trúc Intel
4.4. . Kiến trúc Intel
Bộ vi xử lý 8088/8086 thực thi chương một chương trình bằng cách lặp đi
lặp lại 3 thao tác chính là lấy lệnh (fetch), giải mã lệnh (decode) và thực hiện
(execute). Sơ đồ khối của bộ vi xử lý 8088/8086 gồm 2 đơn vị chính(Hình 30):
- EU (Execution Unit): Đơn vị (khối) thực hiện lệnh.
- BIU (Bus Interface Unit): Đơn vị giao tiếp bus (khối tương thích bus) để
điều khiển bus hiệu quả hơn.
EU
Đơn vị EU của 8088 và 8086 giống nhau, bao gồm ALU, thanh ghi cờ, các
thanh ghi đệm và các thanh ghi đa năng. Các bus dữ liệu bên trong của EU đều là 16
bit. EU không kết nối trực tiếp với bên ngoài, nó nhận lệnh từ hàng đợi lệnh bên
trong BUI. Nếu là lệnh cần truy nhập bộ nhớ hoặc cổng vào/ra (I/O port - thiết bị
ngoại vi) thì EU yêu cầu BIU lấy hoặc gửi dữ liệu. Tất cả các địa chỉ mà EU thao tác
đều là 16 bit, khi gửi sang BIU thì BIU sẽ thực hiện tính toán để tạo địa chỉ vật lý 20
bit và phát ra các chân địa chỉ của chip.
51
Các thanh ghi của EU
Có 8 thanh ghi, là thành phần nhớ có tốc độ truy nhập rất cao. Bao gồm các
thanh ghi đa năng Ax, Bx, Cx, Dx. Mỗi thanh ghi 16 bit có thể được phân chia thành
2 thanh ghi 8 bit làm việc độc lập nhau.
AX (Accumulator, Acc): Thanh chứa, chứa tạm thời dữ liệu (toán hạng,
kết quả phép toán như nhân, chia và được coi là Acc). AX có thể được
phân chia thành AH (Phần cao) và AL (Phần thấp).
BX (Base): Thanh ghi cơ sở, thường được dùng để chứa địa chỉ cơ sở cần
truy nhập trong lệnh XLAT. BX có thể được phân chia thành BH (Phần
cao) và BL (Phần thấp).
CX (Count): Bộ đếm, thường được dùng để đếm số lần lặp của công việc
(số lần lặp trong các vòng lặp). CX có thể được phân chia thành CH (Phần
các thanh ghi tạm
thanh ghi cờ
Logic
điều khiển
BUS
AX
BX
CX
DX
SP
BP
SI
DI
Khối
điều khiển
của EU
Đệm lệnh (hàng đợi lệnh)
(6 byte cho 8086)
BUS
ngoài
Bus địa chỉ (20 bit)
các thanh ghi
đa năng
các thanh ghi đoạn
và con trỏ lệnh
các thanh ghi
con trỏ
và chỉ số
Bus dữ liệu
ALU(16bit)
Bus dữ liệu
(8 bit)
Bus trong
8 bit dữ liệu
20 bit địa chỉ
EU BIU
CS
DS
SS
ES
IP
Hình 30: Sơ đồ khối 8086/8088
52
cao) và CL (Phần thấp). CX thường được dùng để chứa số lần lặp trong
các lệnh LOOP, còn CL thường chứa số lần dịch hoặc quay trong các lệnh
dịch quay thanh ghi.
DX (Data): Thanh ghi đữ liệu, sử dụng để chứa toán hạng, kết quả. DX
cùng AX dùng để chứa toán hạng hoặc kết quả của các phép nhân, chia số
16 bit. DX còn chứa địa chỉ cổng trong các lệnh vào ra trực tiếp (IN,
OUT). DX có thể được phân chia thành DH (Phần cao) và DL (Phần
thấp).
Các thanh con trỏ
Các thanh ghi SP, BP là các thanh ghi con trỏ không tách rời.
SP (Stack Pointer): Thanh ghi con trỏ ngăn xếp, trỏ vào đỉnh hiện thời của
ngăn xếp nằm trong đoạn ngăn xếp SS (Nó luôn kết hợp với thanh ghi
SS). Ta có địa chỉ logic SS: SP. Sau mỗi thao tác cất một word vào stack
(thao tác Push) thì SP tự động giảm 2 đơn vị, còn sau thao tác lấy một
word ra khỏi stack (thao tác Pop), SP được tự động tăng 2 đơn vị.
BP (Base stack Pointer): Con trỏ cơ sở, luôn trỏ vào một dữ liệu cụ thể
nằm trong đoạn ngăn xếp SS. Ta có địa chỉ logic SS: BP.
SI (Source Index): Thanh ghi chỉ số nguồn (hay nguồn), chỉ vào dữ liệu
nằm trong đoạn DS. Ta có địa chỉ logic DS: SI.
DI (Destination Index): Thanh ghi chỉ số đích, chỉ dữ liệu trong đoạn DS.
Ta có địa chỉ logic DS: DI.
Khối LU
Làm nhiệm vụ thực hiện các lệnh số học và logic.
Số học: +, -, *, /, so sánh, đảo dấu.
Logic: NOT, AND, OR, XOR.
Thanh ghi cờ:
Đây là thanh ghi 16 bit, mỗi bit được sử dụng để thể hiện một trạng thái của
bộ vi xử lý tại một thời điểm nhất định trong quá trình thực hiện chương trình (dãy
các câu lệnh), nhưng chỉ dùng 9 bit đối với bộ vi xử lý 8088/8086. Mỗi bit đó được
gọi là một cờ (flag). Giá trị của mỗi cờ được biểu diễn bằng các ký hiệu gợi nhớ như
cách biểu diễn của chương trình Debug của DOS.
OF DF IF TF SF ZF AF PF CF
53
CF (Carry Flag): Cờ nhớ (cờ tràn).
CF = 1 (CY - CarrY) khi kết quả phép toán vượt (tràn) khuôn khổ biểu diễn
(có nhớ (mượn) lên trên (từ) MSB), CF = 0 (NC - No Carry) trong trường hợp ngược
lại. Cờ này thường được sử dụng khi thực hiện các phép cộng, trừ các số nhiều byte.
Ví dụ:
1011 0001
+ 0110 1001
10001 1010
PF (Parity Flag): Cờ chẵn lẻ.
PF = 1 (PE - Parity Even) khi số bit 1 trong kết quả phép toán (hay các phép vận
chuyển dữ liệu) là chẵn, PF = 0 (PO - Parity Old) trong trường hợp ngược lại.
AF (Carry Flag): Cờ nhớ phụ (tràn phụ - cờ bổ trợ).
Cờ này có ý nghĩa khi ta làm việc với số BCD. AF = 1 (AC - Auxiliary Carry) khi có
nhớ hoặc mượn từ một số BCD thấp (4 bit thấp) sang một số BCD cao (4 bit cao) và
AF = 0 (NA - No Auxiliary carry) trong trường hợp ngược lại.
SF (Sign Flag): Cờ dấu. Trong bộ vi xử lý 8088/8086 các số âm được
biểu diễn dưới dạng số bù 2, nên phải dùng cờ SF để chỉ thị dấu của kết
quả.
SF = 1 (NG - NeGative), khi kết quả phép toán là một số âm, SF = 0 (PL- PLus)
trong trường hợp ngược lại.
ZF (Zero Flag): Cờ rỗng.
ZF = 1 (ZR - ZeRo) khi kết quả phép toán = 0, ZF = 0 (NZ-Non Zero) trong trường
hợp ngược lại.
OF (Overflow Flag): Cờ tràn.
OF = 1 (OV-OVerflow) khi kết quả là số bù 2 vượt khuôn khổ biểu diễn
(tràn số học, hay nói cách khác: khi cộng hai số cùng dấu mà kết quả là một số trái
dấu thì OF = 1), OF = 0 (NV-Non oVerflow) trong trường hợp ngược lại (cờ này làm
việc với số có dấu).
Cờ điều khiển
Cờ trạng thái phụ thuộc kết quả phép toán, còn với cờ điều khiển ta có thể
thiết lập nhờ lệnh.
54
IF (Interrupt Flag): Cờ ngắt.
IF = 1 (EI-Enable Interrup), CPU cho phép ngắt, IF = 0 (DI-Disable
Interrup) CPU không cho phép ngắt (cấm) các loại ngắt che được (Maskable)..
TF (Trap Flag): Cờ bẫy.
TF = 1 CPU làm việc trong chế độ chạy từng lệnh, thường dùng để gỡ rối
chương trình (debug). Sau khi thực hiện xong mỗi lệnh, bộ vi xử lý sẽ phát ra một
lệnh ngắt (INT) để có kiểm tra chương trình.
DF (Direction Flag): Cờ hướng.
Điều khiển hướng xử lý đối với thao tác chuỗi. DF = 1 (DN-DowN) thì các
lệnh vận chuyển dữ liệu hay xử lý chuỗi sẽ thao tác lùi từ phải đến trái (địa chỉ cao
đến địa chỉ thấp). DF=0 (UP) trong trường hợp ngược lại (thao tác các phần tử từ địa
chỉ thấp đến địa chỉ cao).
BIU
Hàng đợi: Là tập thanh ghi
Với 8086 hàng đợi lệnh là 6 byte,
8088 hàng đợi lệnh là 4 byte nên chứa được
tối đa là 4 lệnh. CPU chứa tập thanh ghi theo
kiểu LIFO.
Cơ chế:
Đọc lệnh (lấy lệnh)
Giải mã lệnh
Thực hiện
Thanh ghi IP: Thanh ghi con trỏ lệnh, trỏ vào lệnh tiếp theo chuẩn bị được
thực hiện nằm trong đoạn CS (CS: IP). Sau khi đọc 1 byte, IP tự động
tăng thêm 1. Như vậy thực tế thì cặp CS:IP mới là con trỏ lệnh vì nó chứa
địa chỉ đầy đủ của một lệnh trong bộ nhớ.
Thanh ghi đoạn:
CS (Code Segment): Thanh ghi đoạn mã, là thanh ghi địa chỉ
đoạn mã lệnh, chứa địa chỉ cơ sở (địa chỉ đoạn) của chương trình đang
thực hiện.
DS (Data Segment): Thanh ghi đoạn dữ liệu, là thanh ghi địa chỉ
đoạn dữ liệu, chứa địa chỉ đoạn của vùng dữ liệu mà chương trình đang
thực hiện sử dụng. Vùng này thường chứa các biến của chương trình.
55
SS (Stack Segment): Thanh ghi đoạn ngăn xếp, là thanh ghi địa
chỉ đoạn bộ nhớ ngăn xếp (stack) của chương trình đang chạy.
ES (Extra Segment): Thanh ghi đoạn dữ liệu phụ, là thanh ghi
địa chỉ đoạn dữ liệu bổ sung mà chương trình đang thực hiện sử dụng.
Vùng này cũng thường chứa các biến của chương trình.
Không gian địa chỉ
8088 có 20 bit địa chỉ, trong khi đó các thanh ghi quản lý bộ nhớ là 16 bit.
Để xác định một ngăn nhớ có địa chỉ 20 bit, nó dùng 2 thanh ghi 16 bit để xác định
địa chỉ.
Một thanh ghi lưu địa chỉ đoạn.
Một thanh ghi lưu địa chỉ lệch (offset)
Một địa chỉ yêu cầu trong một lệnh nào đó là địa chỉ logic có dạng:
DS:SI
DS:DI
DS:XX
Địa vật lý (phải là số 20 bit) được xác định như sau:
Địa vật lý = địa chỉ đoạn*16 + địa
chỉ lệch
Ví dụ: DS = 4000h, SI = 3F4Dh
Địa chỉ logic của ngăn nhớ: 4000:3F4D
Địa chỉ vật lí của ngăn nhớ: DS * 16 + SI = 40000 + 3F4D = 43F4Dh
Tại một thời điểm CPU quản lý được 4 đoạn nhớ (DS, SS, CS, ES) , nó có thể
đồng thời truy nhập 4 đoạn đó.
Bộ nhớ được chia thành nhiều đoạn. Mỗi đoạn có kích thước tối đa là 64
KB. Vậy ta có 16 đoạn tách rời và địa chỉ lệch thay đổi từ 0000 H đến FFFFh.
Nếu địa chỉ đoạn thay đổi từ 0000h đến FFFFh thì có 64 Kđoạn. Khi đó các
đoạn bao trùm lên nhau. 2 đoạn kề nhau sẽ các nhau 16 Byte (Paragraph).
Khi khởi động máy (hoặc Reset) CS được nạp giá trị F000h, IP được nạp giá
trị FFF0h. Địa chỉ này chỉ đến chương trình khởi động trong ROM.
Địa chỉ vật lý = F000h*16 + FFF0h = F0000h + FFF0h = FFFF0h
56
4.4.2. Kiến trúc CPU intel 4bit
57
CHƢƠNG V: Ộ NHỚ MÁY TÍNH
Mục tiêu của chƣơng
Giúp sinh viên nắm rõ chức năng và phân biệt được các loại bộ nhớ khác
nhau được sử dụng trong máy tính. Hiểu được các thức quản lý và làm việc của
Cache, HDD, CROM.
Tóm Tắt
Trình bày chi tiết về bộ nhớ trong gồm các loại RAM, ROM, bộ nhớ đệm
Cache và cơ chế quan lý Cache. Trình bày tổng quan về cách thức ghi đọc và lưu trữ
dữ liệu trên ổ cứng HDD và CDROM.
Giới thiệu một số phương pháp kiểm soát và phục hồi lỗi truyền thông trong
bộ nhớ sử dụng kỹ thuật mã hoá.
5.1. Tổng quan
. . . Tìm hiểu các loại bộ nhớ
Chúng ta cần xem xét bộ nhớ ở 2 góc độ là logic (hoạt động) và vật lý (cấu
tạo). Trước hết chúng ta cần biết bộ nhớ là gì, chúng nằm ở đâu trong hệ thống và
hoạt động như thế nào. Sau đó chúng ta sẽ xem xét một số loại bộ nhớ và tốc độ,
hình dạng và các modul nhớ mà ta có thể cài đặt.
Bộ nhớ (memmory) là không gian làm việc của bộ vi xử lý. Đó là nơi cất giữ
tạm thời các chương trình và dữ liệu đang được thao tác với bộ vi xử lý. Việc lưu trữ
bộ nhớ được xem tạm thời vì dữ liệu chỉ tồn tại trong thời gian máy đang hoạt động
và không bị khởi động lại. Trước khi khởi động lại hay tắt máy, dữ liệu đã thay đổi
cần được ghi vào các thiết bị lưu trữ lâu dài – storage – (thường là ổ đĩa cứng) để sau
này có thể nạp lại vào bộ nhớ.
Nhiều người mới làm quen với máy tính thường nhầm lẫn giữa bộ nhớ và
đĩa lưu trữ(storage disk) bởi vì cả hai cùng sử dụng đơn vị đo lường là byte,
Kilobyte, Megabyte, Gigabyte hoặc đơn vị cao hơn.
Một điểm quan trọng mà chúng ta cần ghi nhớ đó là: một file khi được nạp
vào trong bộ nhớ, nó chỉ là bản sao của file đó, còn thực chất file đó vẫn tồn tại trong
ổ đĩa. Vì tính chất tạm thời của bộ nhớ cho nên file đã bị thay đổi cần được ghi lại
vào đĩa cứng trước khi tắt máy, vì khi tắt máy dữ liệu trong bộ nhớ sẽ bị xoá.
Bộ nhớ lưu trữ các chương trình đang chạy và dữ liệu của chúng sử dụng.
Các chip nhớ có lúc được gọi là lưu trữ không ổn định (volatile storage) bởi vì khi
tắt máy hoặc có sự cố về nguồn điện, lưu trữ trong RAM sẽ bị mất. Vì bản chất bất
ổn định như vậy cho nên nhiều người dùng có thói quen ghi lại thường xuyên (một
số chương trình ứng dụng có thể ghi một cách tự động theo thời gian đã định).
58
Các đặc trưng của bộ nhớ
Ví trí:
Bên trong CPU: Tập các thanh ghi (register), cache
Bộ nhớ trong: Bộ nhớ chính (Main memmory – RAM, ROM)
Bộ nhớ ngoài: Các thiết bị nhớ, RAID (HDD, CD-Rom, )
Dung lượng:
Độ dài từ nhớ (tính bằng bit) – Kích thước trên một đơn vị lưu trữ
Số lượng từ nhớ - Dung lượng bộ nhớ
Đơn vị truyền:
Từ nhớ - Truyền tuần tự từng Word
Khối nhớ - Truyền một khối gồn n Word
Phương pháp truy nhập:
Truy nhập tuần tự (băng từ) – Để đến được điểm n đầu từ phải duyệt qua
n-1 vị trí trước.
Truy nhập trực tiếp (các loại đĩa) – Đầu từ di chuyển trực tiếp đến vị trí
cần đọc.
Truy nhập ngẫu nhiên (bộ nhớ bán dẫn) – ô nhớ cần đọc sẻ được giả mã
để lấy thông tin ngay lập tức.
Truy nhập liên kết (cache) – Truy cập thông qua ban sao của ô nhớ cần
đọc
Hiệu năng:
Thời gian truy nhập
Chu kỳ truy xuất bộ nhớ
Tốc độ truyền
Kiểu bộ nhớ vật lý:
Bộ nhớ bán dẫn – Lưu trữ bằng điện
Bộ nhớ từ - Lưu trữ dùng từ tính
Bộ nhớ quang – Lưu trữ sử dụng công nghệ Laze
Các đặc tính vật lý:
59
Khả biến/không khả biến
Xoá được/không xoá được
. . . Mô hình phân cấp bộ nhớ
Việc trao đổi dữ liệu giữa CPU và bộ vi xử lý và bộ nhớ chính là một thao
tác quan trọng, chiếm đa số trong các lệnh xử lý dữ liệu nên nó quyết định hiệu suất
của hệ thống vi xử lý nói chung và máy tính nói riêng. Bộ nhớ chính và bộ nhớ ngoài
thường có tốc độ trao đổi dữ liệu chậm (chênh lệch) hơn so với tốc độ làm việc của
CPU (kể cả việc vận chuyển dữ liệu trong bộ vi xử lý). Để nâng cao tốc độ xử lý dữ
liệu chung của toàn hệ thống, người ta tìm cách nâng cao tốc độ trao đổi dữ liệu (kể
cả lệnh) giữa bộ vi xử lý và bộ nhớ ngoài phạm vi bộ vi xử lý. Dựa trên nguyên lý
cục bộ về không gian và thời gian mà người ta xây dựng hệ thống nhớ 5 cấp như sau:
Cấp 0 : Tập các thanh ghi nằm trong bộ vi xử lý. Thanh ghi là bộ nhớ kiểu
SRAM nên tác động nhanh và thông tin ổn định. Đây là thành phần nhớ có
tốc độ trao đổi dữ liệu nhanh nhất trong hệ thống vì nó gần ALU và CU. Tuy
nhiên nó có dung lượng nhỏ.
Cấp 1 : Primary cache (cache sơ cấp) : Là bộ nhớ có tốc độ trao đổi dữ liệu
rất nhanh (nhỏ hơn thanh ghi), có dung lượng nhỏ và được đặt trong bộ vi xử
lý, nhưng cũng có thể nằm ngoài bộ vi xử lý. Trong các bộ vi xử lý tiên tiến,
bộ nhớ cache thường được tách (chia) làm 2 với mục đích tránh xung đột
trong xử lý song song (đại diện là pipline) là Icache : dành cho lệnh và
Dcache : dành cho dữ liệu.
CPU Registers
100s Bytes
1s ns
Cache
K Bytes
4 ns
1-0.1 cents/bit
Main Memory
M Bytes
100ns- 300ns
$.0001-.00001 cents /bit
Disk
G Bytes, 10 ms
(10,000,000 ns)
10 - 10 cents/bit
Capacity
Access Time
Cost
Tape
infinite
sec-min
10
-8
Upper Level
-5 -6
Registers
Cache
Memory
Disk
Tape
Instr. Operands
Blocks
Pages
Files
Staging
Xfer Unit
prog./compiler
1-8 bytes
cache cntl
8-128 bytes
OS
512-4K bytes
user/operator
Mbytes
Lower Level
faster
Larger
60
Cấp 2 : Secondary cache (cache thứ cấp) : Cũng giống như Primary cache,
nhưng loại này nằm ngoài bộ vi xử lý. Nó chỉ có khi có Primary cache (ngược
lại, nó chính là Primary cache). Dung lượng của Secondary cache thường lớn
hơn Primary cache và nhỏ hơn bộ nhớ.
Cấp 3 : Main Memory (Bộ nhớ chính): Chứa chương trình và dữ liệu đang
hoạt động. Bộ nhớ này được bộ vi xử lý đánh địa chỉ trực tiếp và quản lý
thông qua địa chỉ đó. Một phần của chương trình đang được thi hành có thể
nằm trong cache (lệnh và dữ liệu) nhằm tăng tốc độ hoạt động của hệ thống.
Dung lương của bộ nhớ chính thường lớn hơn rất nhiều lần dung lượng bộ
nhớ cache. Như đã biết, trong các hệ thống máy tính hiện đại ngày nay thì bộ
nhớ chính thường là DRAM.
Câp 4 : Secondary memory (Bộ nhớ thứ cấp – bộ nhớ ngoài): Bộ nhớ này có
dung lượng rất lớn nhưng tốc độ trao đổi dữ liệu chậm. Bộ nhớ này để lưu trữ
chương trình và dữ liệu một cách lâu dài, cho nhiều người sử dụng (ghi/đọc,
mất nguồn điện vẫn còn thông tin). Đại diện cho các bộ nhớ loại này đó chính
là các ổ đĩa cứng, mềm CD ROM, CD – WOM, CD WR, băng từ,
. . ộ nhớ bán d n
. . . ộ nhớ ROM
Ðây là loại bộ nhớ dùng trong các hãng sãn xuất là chủ yếu. Nó có đặc tính
là thông tin lưu trữ trong ROM không thể xoá được và không sửa được, thông tin sẽ
được lưu trữ mãi mãi. Nhưng ngược lại ROM có bất lợi là một khi đã cài đặt thông
tin vào rồi thì ROM sẽ không còn tính đa dụng. Ví dụ điển hình là các con "chip"
trên motherboard hay là BIOS ROM để vận hành khi máy tính vừa khởi động.
61
Các công nghệ ROM:
- EPROM:
Đối với EPROM, dữ liệu có thể ghi vào bằng điện và có thể xóa được.
EPROM sử dụng một transistor có cấu trúc FAMOST (Floating gate avalanche
injection MOS transistor). Đối với transistor loại này, cấu tạo cũng giống như dạng
FET thông thường nhưng trong cực gate tồn tại thêm một cực, gọi là cực nổi
(floating gate). Nếu cực nổi không có điện tích thì transistor này hoạt động như một
FET thông thường, nghĩa là nếu cực Gate có điện áp dương thì FET dẫn, cực drain
nối với cực source cực drain có mức logic 1. Nếu cực nổi có chứa điện tích thì nó sẽ
tạo ra trường điện từ đủ sức ngăn chặn không cho FET dẫn cực drain có mức logic 0.
Quá trình nạp điện tử vào cửa nổi được thực hiện bằng các xung điện có độ
rộng khoảng 50 ms và biên độ 20V đặt vào cực gate và cực drain. Điện tử được lưu
trữ tại vùng cửa nổi khi xung điện tắt (thời gian lưu trữ ít nhất là 10 năm). Để xóa dữ
liệu trên EPROM, ta phải chiếu ánh sáng tử ngoại vào chip nhớ. Các điện tử sẽ hấp
thu năng lượng đủ để có thể vượt ra khỏi cực nổi làm cho cực nổi không chứa điện
tử toàn bộ EPROM chứa giá trị 1. Do đó, trên các chip EPROM sẽ có một cửa số
bằng thạch anh cho phép ánh sáng tử ngoại đi qua.
- EEPROM
Do việc sử dụng cửa sổ thạch anh không tiện lợi nên những năm gần đây đã
xuất hiện them chip ROM có thể xóa bằng điện. Cấu tạo của EEPROM cũng giống
như EPROM nhưng lúc này có thêm một lớp màng mỏng oxide giữa vùng cực nổi và
cực drain cho phép các điện tử di chuyển từ vùng cực nổi sang cực drain khi đặt một
điện áp âm. Như vậy, quá trình lập trình cho EEPROM tương tự như EPROM trong
khi đó để xóa dữ liệu thì chỉ cẩn đặt một điện áp -20V vào cực gate và cực drain vói
thời gian thích hợp (vì nếu thời gian quá dài thì các điện tử sẽ di chuyển thêm sang
cực drain làm cho cực nổi sẽ có điện tích dương FET sẽ không hoạt động như bình
thường).
5.2. . ộ nhớ R M
RAM là thế hệ kế tiếp của ROM, cả RAM và ROM đều là bộ nhớ truy xuất
ngẫu nhiên, tức là dữ liệu được truy xuất không cần theo thứ tự. Tuy nhiên ROM
chạy chậm hơn RAM rất nhiều. Thông thường ROM cần trên 50ns để xử lý dữ liệu
trong khi đó RAM cần dưới 10ns.
a) DRAM
Cấu tạo của DR M
Địa chỉ xác định ô nhớ chia thành 2 phần: địa chỉ hàng và cột. Hai địa chỉ này
được đưa lần lượt vào bộ đệm. Quá trình dồn kênh địa chỉ điều khiển bằng các tín
62
hiệu RAS (Row Access Strobe) và CAS (Column Access Strobe). Bộ điều khiển nhớ
của CPU phải thực hiện 3 công việc sau: chia địa chỉ từ CPU thành các địa chỉ hàng
và cột; tích cực các chân RAS , CAS và WE một cách chính xác; truyền và nhận các
dữ liệu đọc, ghi.
Hình 31: Sơ đồ khối của DRAM
Một ô nhớ của DRAM có thể biểu diễn như Hình 32:
Hình 32: Cấu trúc 1 ô nhớ của DRAM
Làm tƣơi DR M
Điện tích trên tụ điện bị giảm theo thời gian do chúng phóng qua FET và lớp
điện môi oxide làm cho dữ liệu có thể bị mất. Do đó, tụ điện phải được nạp lại một
cách tuần hoàn (refresh), thông thường khoảng từ 1 ÷ 16 ms tùy theo loại RAM.
Có 3 phương pháp refresh:
Chỉ tác động R S:
Tạo chu kỳ đọc giả (dummy read) để làm tươi ô nhớ. Trong chu kỳ giả này,
tín hiệu RAS tích cực và địa chỉ hàng được đưa vào DRAM nhưng CAS bị cấm nên
không thể truyền dữ liệu ra ngoài được. Để làm tươi toàn bộ bộ nhớ thì tất cả các địa
chỉ phải được cấp lần lượt. Nhược điểm của phư
Các file đính kèm theo tài liệu này:
- giao_trinh_mon_hoc_cau_truc_may_tinh.pdf