Giáo trình môn học Cấu trúc máy tính

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

pdf106 trang | Chia sẻ: trungkhoi17 | Lượt xem: 471 | Lượt tải: 0download
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:

  • pdfgiao_trinh_mon_hoc_cau_truc_may_tinh.pdf
Tài liệu liên quan