Kiến trúc máy tính - Chương 1: Đại cương

Thế hệ máy tính cơ khí

• Blaise Pascal (1636-1662): chế tạo máy có thể tính

toán được đầu tiên (cộng, trừ) năm 1642

• Leibniz (1646-1716): chế được máy có thể tính được

phép nhân, chia

• Charles Babbage (1791-1871): nghiên cứu chế tạo

máy phân tích (analytical engine)

• Đưa ý tưởng về máy tính đa năng (general purpose)

• Không thành công do công nghệ phần cứng chưa đáp ứng

pdf101 trang | Chia sẻ: Mr Hưng | Lượt xem: 912 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Kiến trúc máy tính - Chương 1: Đại cương, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
KIẾN TRÚC MÁY TÍNH Chương 1: Đại cương Nguyễn Duy Phúc duyphucit@live.com Vĩnh Long, 08/2013 Các thế hệ máy tính  Thế hệ máy tính cơ khí • Blaise Pascal (1636-1662): chế tạo máy có thể tính toán được đầu tiên (cộng, trừ) năm 1642 • Leibniz (1646-1716): chế được máy có thể tính được phép nhân, chia • Charles Babbage (1791-1871): nghiên cứu chế tạo máy phân tích (analytical engine) • Đưa ý tưởng về máy tính đa năng (general purpose) • Không thành công do công nghệ phần cứng chưa đáp ứng Các thế hệ máy tính (2) Blaise Pascal Pascal's Calculator (Pascaline) Các thế hệ máy tính (3) Charles Babbage Một phần của máy sai phân (Difference Engine) Các thế hệ máy tính (4)  Thế hệ đầu tiên (1946-1955) • Sử dụng đèn điện tử • Máy tính điện tử số đầu tiên: ENIAC (Electronic Numerical Integrator and Computer) • Chế tạo 1943, hoàn thành 1946 • 18.000 đèn điện tử, 1.500 công tắc tự động, 30 tấn, tiêu thụ 140KWh • Số thập phân, 20 thanh ghi 10 bit, 5000 phép toán cộng/s • Lập trình bằng tay bằng cách đấu nối công tắc, đầu cắm • John Von Neumann thiết kế máy IAS, làm cơ sở cho nhiều thế hệ máy tính về sau: số nhị phân, lưu trữ chương trình trong bộ nhớ, ALU Các thế hệ máy tính (5) Các thế hệ máy tính (5)  Thế hệ thứ hai (1958-1964) • Sử dụng bán dẫn (transistor) • Kích thước giảm, rẻ tiền, tốn ít năng lượng hơn thế hệ trước • Ngôn ngữ cấp cao xuất hiện (FORTRAN, COBOL, ALGOL) • Xuất hiện hệ điều hành theo lô (Batch) Các thế hệ máy tính (6)  Thế hệ thứ ba (1965-1971) • Sử dụng mạch tích hợp (IC – Integrated Circuit), mạch tích hợp mức độ thấp, trung bình (SSI, MSI) • Sử dụng bộ nhớ bán dẫn • Máy tính đa chương trình • Hệ điều hành chia sẻ thời gian Các thế hệ máy tính (7)  Thế hệ thứ tư (1972-?) • Sử dụng mạch tích hợp mức độ cao (LSI), cực cao (VLSI) • Kỹ thuật ống dẫn, vô hướng, song song, • Bộ nhớ cache, bộ nhớ ảo • Xuất hiện máy tính cá nhân Các thế hệ máy tính (8)  Khuynh hướng hiện tại • Máy tính thông minh (trí tuệ nhân tạo): khả năng bắt chước, suy nghĩ, học hỏi • Tiên phong là người Nhật • Một số ứng dụng: game, nhận dạng hình ảnh, nhận dạng tiếng nói, chữ viết, Phân loại máy tính  Siêu máy tính (Supercomputer) • Khả năng tính toán cao • FLOP (Floating point operations per second): dưới 1 gigaflop/s không được gọi là siêu máy tính • Sử dụng trong tính toán khoa học • Đắt tiền, đòi hỏi trình độ kỹ thuật cao để quản lý, sử dụng • Tham khảo: www.top500.org Phân loại máy tính (2)  Máy tính lớn (Mainframe) • Hệ thống nhập xuất mạnh, lưu trữ dữ liệu lớn • Dùng trong quản lý  Máy tính mini (Minicomputer) • Cấu hình mạnh, hoạt động ổn định • Sử dụng làm máy chủ (server)  Máy tính cá nhân (Microcomputer, Personal Computer) • Giá thành rẻ, sử dụng cho mục đích cá nhân Quy luật Moore (Moore’s law)  Gordon Earle Moore (1929), đồng sáng lập hãng Intel  Nội dung: khả năng của máy tính sẽ tăng gấp đôi sau 18 tháng với giá thành như nhau • Mật độ tích hợp của linh kiện tăng gấp đôi • Chi phí giảm • Giảm kích thước • Tiết kiệm năng lượng Quy luật Moore (2) Thông tin và sự mã hóa thông tin Thông tin và sự mã hóa thông tin (2)  Lượng thông tin: • Đơn vị là bit • Công thức tính lượng thông tin cần thiết: I = Logk(N) N : số trạng thái có thể có k : hệ thống số sử dụng để biểu diễn • Ví dụ: để biểu diễn 8 trạng thái ở hệ 2 cần Log2(8) = 3 bit  000, 001, 010, 011, 100, 101, 110, 111 Thông tin và sự mã hóa thông tin (3) Biểu diễn các số  Dạng tổng quát biểu diễn giá trị của một số: 𝑉𝑘 = 𝑖=−𝑚 𝑛−1 𝑏𝑖 . 𝑘 𝑖 • k : hệ biểu diễn • m : số thứ tự của chữ số phần lẻ (đánh số từ 1) • n : số thứ tự của chữ số phần nguyên (đánh số từ 0)  Các ký số (bi) được biễu diễn theo quy tắc 0..9, tiếp theo là A, B, C,  Ví dụ: 13.2510=1.10 1 + 3.100 + 2.10-1 + 5.10-2 Thông tin và sự mã hóa thông tin (4)  Cách biểu diễn phần nguyên của một số hệ 10 sang hệ k: • Gọi số cần biểu diễn là N • B1: Chia số N cho k, được phần nguyên n, phần dư d • B2: Nếu n=0 thì đến bước 3, ngược lại gán N=n và đến bước 1 • B3: Viết các số dư d ngược lại với thứ tự nhận được. Kết quả chính là số N cần biểu diễn ở hệ k  Ví dụ: biểu diễn 6710 sang hệ 2 Thông tin và sự mã hóa thông tin (5) Phép tính Phần nguyên Phần dư 67 / 2 33 1 33 / 2 16 1 16 / 2 8 0 8 / 2 4 0 4 / 2 2 0 2 / 2 1 0 1 / 2 0 1 Kết quả: 6710 = 10000112 Thông tin và sự mã hóa thông tin (6)  Chuyển đổi giữa hệ 2 và hệ 16 • Theo từng nhóm, 4 ký số hệ nhị phân tương đương 1 ký số hệ 16  Ví dụ: • 10100011012  10.1000.11012  28D16 • 4F16 0100.11112  10011112 Hệ 10 Hệ 2 Hệ 16 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F Thông tin và sự mã hóa thông tin (7)  Biểu diễn số nguyên có dấu ở hệ nhị phân: • Sử dụng dạng bù 2: bit cao nhất có dấu âm • Công thức tính giá trị: 𝑁 = −𝑑𝑛−1. 2 𝑛−1 + 𝑖=0 𝑛−2 𝑑𝑖 . 2 𝑖 di : chữ số thứ I n : số chữ số của N Thông tin và sự mã hóa thông tin (8)  Ví dụ: • 0101bù 2 - 4 bit = -0.2 3 + 1.22 + 0.21 + 1.20 = 5 • 1011bù 2 - 4 bit = -1.2 3 + 0.22 + 1.21 + 1.20 = -5  Cách chuyển N từ hệ 10  bù 2 – k bit • Nếu N là số dương: biểu diễn N sang nhị phân, thêm 0 vào phía trước cho đủ k bit • Nếu N là số âm: • B1: Lấy trị tuyệt đối của N, sau đó biểu diễn sang nhị phân, thêm 0 vào phía trước cho đủ k bit • B2: Nghịch đảo các bit của số có được sau đó cộng thêm 1 Thông tin và sự mã hóa thông tin (9)  Ví dụ: 710 bù 2 – 5 bit 710 1112  00111bù 2 – 5 bit -710 bù 2 – 5 bit B1: 710 1112 001112 B2: 001112 đảo bit  110002 + 12 11001bù 2 – 5 bit Thông tin và sự mã hóa thông tin (10)  Biểu diễn số thực dạng đơn giản • Phần nguyên: đổi sang dạng nhị phân theo cách tổng quát • Phần thập phân: nhân 2, giữ lại phần nguyên cho đến khi nào phần lẻ bằng 0 • Ví dụ: 17.25 • Phần nguyên: 1510 100012 • Phần thập phân: 0.25 x 2 = 0.5 0.5 x 2 = 1.0  17.2510 = 10001.012 Thông tin và sự mã hóa thông tin (11)  Biểu diễn số thực với dấu chấm động • Chuẩn hóa về dạng ±𝟏. 𝐟𝐟𝐟𝐟 𝐟 𝐱 𝟐±𝐄 • Gồm 3 phần: phần dấu (+/-), phần mũ (E), phần định trị (1.ffffff) • Thường dùng chuẩn IEEE 754 • Chính xác đơn: 32 bit (1 – 8 – 23) • Chính xác kép: 64 bit (1 – 11 – 52) • Dạng mở rộng Thông tin và sự mã hóa thông tin (12)  Biểu diễn số thực dạng chính xác đơn (32 bit) Giá trị  (-1)S x (1.f1f2f23) x 2 (E - 127)  Biểu diễn số thực dạng chính xác kép (64 bit) Giá trị  (-1)S x (1.f1f2f52) x 2 (E - 1023) 31 30 ... 23 22 21 1 0 S E f1 f2 .. f22 f23 63 62 ... 52 51 50 1 0 S E f1 f2 .. f51 f52 Thông tin và sự mã hóa thông tin (13)  Ví dụ: biểu diễn -12.625 dạng chính xác đơn • B1: -12.625  -1100.1012 • B2: Chuẩn hóa về dạng 1.f -1100.1012 = -1.1001012 x 2 3 • B3: Điền vào các trường theo chuẩn S = 1 do là số âm Phần mũ: E - 127 = 3  E = 130 = 100000102 Kết quả S E F 1 1000 0010 1001 0100 0000 0000 0000 000 Thông tin và sự mã hóa thông tin (14)  Biểu diễn ký tự • Bảng mã ASCII (American Standard Codes for Information Interchange): dùng 7 bit để biểu diễn một ký tự, về sau mở rộng thành 8 bit • Bảng mã UNICODE: dùng 16 bit để biểu diễn cho 1 ký tự Thông tin và sự mã hóa thông tin (15)  Đơn vị đo thông tin • Nhỏ nhất là bit (b) • 8 bit = 1 Byte (B) • Theo lũy thừa 210 các đơn vị kế tiếp là • 210 B = 1024 B = 1 KB • 210 KB = 1024 KB = 1 MB (Mega) • 210 MB = 1024 MB = 1 GB (Giga) • 210 GB = 1024 GB = 1 TB (Tera) • 210 TB = 1024 TB = 1 PB (Peta) • Exa, Zetta, Yotta KIẾN TRÚC MÁY TÍNH Chương 2: Kiến trúc phần mềm bộ xử lý Nguyễn Duy Phúc duyphucit@live.com Vĩnh Long, 06/2013 Thành phần cơ bản của một máy tính Cấu trúc của một hệ thống máy tính đơn giản Thành phần cơ bản của một máy tính (2)  Bộ nhớ trong (Memory) • Tập hợp các ô nhớ có kích thước bằng nhau • Thông tin lưu dạng nhị phân • Thời gian truy xuất các ô nhớ bằng nhau (RAM – Random Access Memory)  Bộ phận vào ra • Nhập xuất thông tin • Giao tiếp giữa người sử dụng với máy tính hoặc giữa các máy tính với nhau Thành phần cơ bản của một máy tính (3)  Bộ xử lý trung tâm (Central Processing Unit) • Lấy lệnh và dữ liệu từ bộ nhớ và thi hành • Gồm 2 phần: • Phần thi hành lệnh: ALU (Arithmetic and Logic Unit) và các thanh ghi (Registers) • Phần điều khiển: đảm bảo thi hành lệnh tuần tự và tác động các mạch chức năng để thực hiện  Bus: kết nối các bộ phận với nhau • Bus dữ liệu • Bus địa chỉ • Bus điều khiển Sơ đồ mô tả hoạt động điển hình của một máy tính Định nghĩa kiến trúc máy tính  Gồm 3 phần: kiến trúc phần mềm, tổ chức của máy tính, lắp đặt phần cứng  Kiến trúc phần mềm: chủ yếu là BXL, bao gồm • Tập lệnh: tập các lệnh mã máy hoàn chỉnh có thể hiểu và xử lý bởi CPU • Kiểu định vị: chỉ ra cách thức thâm nhập toán hạng Lập trình viên phải nắm vững kiến trúc phần mềm để lập trình hiệu quả, ít sai sót. Định nghĩa kiến trúc máy tính (2)  Tổ chức của máy tính: • Cấu trúc bên trong của BXL • Cấu trúc bộ nhớ, bus, nhập xuất,  Lắp đặt phần cứng: liên quan đến các bộ phận, linh kiện điện tử cụ thể  Các máy tính có thể cùng kiến trúc phần mềm nhưng khác nhau ở tổ chức, lắp đặt Các kiểu thi hành một lệnh  Một lệnh mã máy bao gồm • Mã tác vụ • Toán hạng: thường từ 0 đến 3 toán hạng tùy theo thiết kế  Vị trí của toán hạng • Ngăn xếp (Stack) • Thanh ghi tích lũy (Accumulator Register) • Thanh ghi đa dụng (General Registers) Các kiểu thi hành một lệnh (2)  Ví dụ: thực hiện phép tính C:=A+B Kiến trúc ngăn xếp Kiến trúc thanh ghi tích lũy Kiến trúc thanh ghi đa dụng PUSH A PUSH B ADD LOAD C LOAD A ADD B STORE C LOAD R1, A ADD R1, B STORE R1, C Các kiểu thi hành một lệnh (3) Kiến trúc ngăn xếp Kiến trúc thanh ghi tích lũy Kiến trúc thanh ghi đa dụng Ưu điểm: - Lệnh ngắn - Ít mã máy - Tối thiểu trạng thái - Dễ dạng tạo bộ biên dịch Ưu điểm: - Lệnh ngắn - Tối thiểu trạng thái - Thiết kế dễ dàng Ưu điểm: - Tốc độ xử lý nhanh - Ít thâm nhập bộ nhớ - Kiểu tổng quát để tạo ra mã hữu hiệu Nhược điểm: - Thâm nhập ngăn xếp không ngẫu nhiên - Mã không hiệu quả - Khó dùng trong xử lý song song và ống dẫn - Khó tạo bộ biên dịch tối ưu Nhược điểm: - Lưu trữ ở thanh ghi tích lũy là tạm thời - Nghẽn ở thanh ghi tích lũy - Khó dùng trong xử lý song song và ống dẫn - Trao đổi nhiều với bộ nhớ Nhược điểm: - Lệnh dài - Số lượng thanh ghi bị giới hạn Kiểu kiến trúc thanh ghi đa dụng  Được sử dụng nhiều hiện nay  Số toán hạng trong lệnh • 2 toán hạng, trong đó có 1 toán hạng vừa là toán hạng nguồn, vừa là toán hạng đích • 3 toán hạng, có 1 làm toán hạng đích  Loại toán hạng: tức thì, thanh ghi, bộ nhớ  Kiểu tổ hợp toán hạng: thanh ghi – thanh ghi, thanh ghi – bộ nhớ, bộ nhớ – bộ nhớ Kiểu kiến trúc thanh ghi đa dụng (2)  Tập lệnh Tác vụ Mô tả Tính toán số học và luận lý Phép tính số nguyên và phép tính luận lý Di chuyển số liệu Nạp số liệu, lưu trữ số liệu Chuyển điều khiển Nhảy, vòng lặp, gọi chương trình con và trở về, ngắt quãng Hệ thống Gọi hệ điều hành, quản lý bộ nhớ ảo Tính số có dấu chấm động Các phép tính trên số thực Tính số thập phân Tính toán, chuyển đổi trên số thập phân Tính toán trên chuỗi Chuyển dữ liệu, so sánh, tìm kiếm trên chuỗi Đồ họa và đa phương tiện Nén, giải nén trên dữ liệu hình ảnh, âm thanh, video Kiểu kiến trúc thanh ghi đa dụng (3)  Các kiểu định vị: xác định cách thức thâm nhập toán hạng • Định vị tức thì • Định vị thanh ghi • Định vị bộ nhớ  Các lưu trữ từ nhớ (word) trong bộ nhớ • Big-Endian: byte thấp nhất lưu trong ô nhớ địa chỉ cao nhất • Little-Endian: byte thấp nhất lưu trong ô nhớ địa chỉ thấp nhất Kiểu kiến trúc thanh ghi đa dụng (4) Kiểu định vị Ví dụ Giải thích Thanh ghi Add R3, R4 R3  R3 + R4 Tức thì Add R4, #3 R4  R4 + 3 Trực tiếp Add R1, (1001) R1  R1 + M[1001] Gián tiếp (thanh ghi) Add R4, (R1) R4  R4 + M[R1] Gián tiếp (bộ nhớ) Add R1, @(R3) R1  R1 + M[M[R3]] Gián tiếp (thanh ghi + độ dời) Add R4, 100(R1) R4  R4 + M[R1 + 100] Gián tiếp (thanh ghi + thanh ghi) Add R3, (R1 + R2) R3  R3 + M[R1 + R2] Gián tiếp (thanh ghi nền + thanh ghi chỉ số + độ dời) Add R1, 100(R2)[R3] R1  R1 + M[100 + R2 + d*R3] Tự tăng Add R1, (R2)+ R1  R1 + M[R2] R2 R2 + d Tự giảm Add R1, -(R2) R2  R2 – d R1  R1 + M[R2] Kiến trúc CISC  Kiến trúc tập lệnh phức tạp – CISC (Complex Instruction Set Computer) • Nhiều lệnh • Lệnh có chiều dài thay đổi • Nhiều kiểu định vị • Nhiều cách thực hiện lệnh • Bộ điều khiển sử dụng vi chương trình Kiến trúc RISC  Kiến trúc tập lệnh rút gọn – RISC (Reduce Instruction Set Computer) • Ít lệnh (<100) • Ít kiểu định vị • Lệnh có cùng chiều dài • Ít dạng lệnh • Bộ điều khiển bằng mạch điện • Nhiều thanh ghi Ngôn ngữ cấp cao và ngôn ngữ máy Mô tả quá trình chuyển đổi từ ngôn ngữ cấp cao sang ngôn ngữ máy KIẾN TRÚC MÁY TÍNH Chương 3: Tổ chức bộ xử lý Nguyễn Duy Phúc duyphucit@live.com Vĩnh Long, 06/2013 Đường đi của dữ liệu  Các thành phần: • ALU • PC (Program Counter) • SR (Status Register) • Thanh ghi tổng quát • TEMP • MAR (Memory Address Register) • MBR (Memory Buffer Register) • MUX (Multiplexor) • S1, S2, Dest Bộ điều khiển  Nhiệm vụ: • Giải mã lệnh • Phát tín hiệu điều khiển các bộ phận chức năng thực hiện lệnh  Có 2 loại: • Dùng mạch điện tử: đơn giản, phù hợp với BXL RISC • Dùng vi chương trình (microprogram): dễ sửa đổi, phù hợp với BXL CISC Nguyên tắc hoạt động của bộ điều khiển dùng mạch điện tử Nguyên tắc hoạt động của bộ điều khiển dùng vi chương trình Diễn tiến thi hành lệnh mã máy IF • Đọc lệnh (Instruction Fetch) ID • Giải mã lệnh (Instruction Decode) EX • Thi hành lệnh (Execute) MEM • Thâm nhập bộ nhớ trong hoặc nhảy (Memory Access) RS • Lưu trữ kết quả (Result Storing) Diễn tiến thi hành lệnh mã máy (2)  Đọc lệnh (IF) • MAR  PC • IR M[MAR]  Giải mã lệnh (ID) • A  Rs1 • B  Rs2 • PC  PC + d d: kích thước của lệnh Diễn tiến thi hành lệnh mã máy (3)  Thi hành lệnh (EX): tùy theo trường hợp • Liên hệ tới bộ nhớ • MAR  Địa chỉ cần liên hệ do ALU tính (Rs2) • MBR  Dữ liệu cần lưu và bộ nhớ (Rs1) • Một lệnh tính toán của ALU • Ngã ra ALU  kết quả phép tính • Lệnh nhảy • Ngã ra ALU  địa chỉ cần nhảy đến Diễn tiến thi hành lệnh mã máy (4)  Thâm nhập bộ nhớ trong/nhảy lần cuối (MEM) • Liên hệ tới bộ nhớ • Đọc từ bộ nhớ: MBR M[MAR] • Ghi vào bộ nhớ: M[MAR] MBR • Nhảy • Có điều kiện  nếu điều kiện đúng thì: PC  ngã ra ALU • Không điều kiện thì: PC  ngã ra ALU  Lưu trữ kết quả (RS) • Rd  ngã ra ALU / MBR Diễn tiến thi hành lệnh mã máy (5) Ví dụ 1: diễn tiến thi hành lệnh ADD R1, R2, R3  IF MAR  PC IR M[MAR]  ID A  R2 B  R3 PC  PC + d  EX Ngã ra ALU  A + B  MEM  RS R1  C  Ngã ra ALU Diễn tiến thi hành lệnh mã máy (6) Ví dụ 2: diễn tiến thi hành lệnh LOAD R1, (R2)  IF MAR  PC IR M[MAR]  ID B  R2 PC  PC + d  EX MAR  Ngã ra ALU  B  MEM MBR M[MAR]  RS R1  C  Ngã ra ALU MBR Diễn tiến thi hành lệnh mã máy (7) Ví dụ 3: diễn tiến thi hành lệnh STORE R3, (R4)  IF MAR  PC IR M[MAR]  ID A  R3 B  R4 PC  PC + d  EX MAR  Ngã ra ALU  B MBR  Ngã ra ALU  A  MEM M[MAR] MBR  RS Diễn tiến thi hành lệnh mã máy (8) Ví dụ 4: diễn tiến thi hành lệnh JMP R1  IF MAR  PC IR M[MAR]  ID B  R1 PC  PC + d  EX Ngã ra ALU  B  MEM PC  Ngã ra ALU  RS Kỹ thuật ống dẫn (Pipeline)  Là kỹ thuật làm cho các giai đoạn khác nhau của nhiều lệnh được thi hành cùng một lúc.  Thực thi lệnh bình thường Lệnh Xung nhịp 1 2 3 4 5 6 7 8 9 10 i IF ID EX MEM RS i + 1 IF ID EX MEM RS Kỹ thuật ống dẫn (2)  Áp dụng kỹ thuật ống dẫn Lệnh Xung nhịp 1 2 3 4 5 6 7 8 9 10 i IF ID EX MEM RS i + 1 IF ID EX MEM RS i + 2 IF ID EX MEM RS i + 3 IF ID EX MEM RS i + 4 IF ID EX MEM RS i + 5 IF ID EX MEM RS Kỹ thuật ống dẫn (3)  Yêu cầu: • Có mạch điện riêng để thi hành từng giai đoạn của lệnh • Có nhiều thanh ghi khác nhau dùng cho đọc và ghi dữ liệu • Giải mã phải hoàn tất trong một chu kỳ xung nhịp • Có nhiều thanh IR, PC, ALU Kỹ thuật ống dẫn (4)  Khó khăn do cấu trúc • Do thiếu bộ phận chức năng  Khó khăn do số liệu • Do trong đường ống có lệnh sử dụng kết quả của lệnh trước nó  Khó khăn do điều khiển • Do có lệnh nhảy làm mất tính tuần tự của chương trình Các kỹ thuật khác  Siêu vô hướng (SuperScalar)  Máy tính có lệnh thật dài (VLIW)  Máy tính vector  Máy tính song song: SISD, SIMD, MISD, MIMD  Kiến trúc IA-64 KIẾN TRÚC MÁY TÍNH Chương 4: Bộ nhớ Nguyễn Duy Phúc duyphucit@live.com Vĩnh Long, 06/2013 Các loại bộ nhớ  Bộ nhớ trong: ROM, RAM  Bộ nhớ ngoài: đĩa, băng từ, thẻ nhớ,  Công nghệ chế tạo RAM • RAM tĩnh (SRAM – Static RAM) • RAM động (DRAM – Dynamic RAM)  Các loại DRAM • SDRAM • DDR SDRAM • RDRAM SRAM và DRAM SRAM DRAM - Công nghệ ECL - Kích thước lớn, phức tạp - Tốc độ nhanh - Không cần làm tươi bộ nhớ - Đắt tiền - Dùng làm bộ nhớ cache, thanh ghi - Công nghệ MOS - Nhỏ gọn, đơn giản - Tốc độ chậm - Cần phải làm tươi - Rẻ tiền - Dùng làm bộ nhớ chính (các thanh RAM) Các cấp bộ nhớ Toán hạng (Operand) Khối (Block) Trang (Page) File Từ trên xuống: dung lượng tăng, giá thành và tốc độ giảm Bộ nhớ Cache  Là bộ nhớ nhanh (thường là SRAM), hoạt động trung gian giữa bộ nhớ trong và CPU, chứa lệnh và dữ liệu thường xuyên hoặc sẽ sử dụng đến CPUMain Memory Cache Xác xuất truy cập dữ liệu trong bộ nhớ trong  Một chương trình mất 90% thời gian của nó để thi hành 10% số lệnh của chương trình.  Nguyên tắc về thời gian • Chương trình luôn có phần được truy xuất thường xuyên nhất.  Nguyên tắc về không gian • Khả năng thập nhập ô nhớ kế tiếp là cao do tính tuần tự của chương trình. Vận hành của Cache CPUMain Memory Cache Trao đổi dữ liệu giữa CPU – Cache – Bộ nhớ trong Blocks Words Vận hành của Cache (2)  Thành công Cache (Cache hit) • Dữ liệu cần truy xuất có trong cache  Thất bại Cache (Cache miss) • Dữ liệu cần truy xuất không tìm thấy trong cache  Trừng phạt thất bại Cache (Cache penalty) • Thời gian cần thiết để xử lý một thất bại cache • Bao gồm: thời gian truy xuất bộ nhớ trong + thời gian chuyển khối cần đọc từ bộ nhớ trong đến cache Sắp xếp khối trong Cache Tương ứng trực tiếp  Vị trí đặt khối tính theo công thức K = i mod n  Trong đó • K : Vị trí đặt khối trong cache • i : số thứ tự của khối trong bộ nhớ trong • n : số lượng khối của cache Sắp xếp khối trong Cache (2) Hoàn toàn phối hợp  Một khối trong bộ nhớ trong có thể đặt ở khối có vị trí bất kỳ trong cache Sắp xếp khối trong Cache (3) Phối hợp theo tập hợp  Cache được chia thành nhiều tập hợp, mỗi tập hợp có nhiều khối, số lượng khối của các tập hợp bằng nhau  Cách đặt khối trong bộ nhớ vào cache • Tính K = i mod s • Trong đó s là số lượng tập hợp của cache • Khối sẽ được đặt vào bất kỳ vị trí nào trong tập hợp thứ K 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Bộ nhớ trong Bộ nhớ cache 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 1 2 3 4 5 6 7 Hoàn toàn phối hợp 0 1 2 3 4 5 6 7 Tương ứng trực tiếp 0 1 2 3 4 5 6 7 0 0 1 1 2 2 3 3 Phối hợp theo tập hợp Cách tìm khối trong Cache  Ứng với một thao tác truy xuất một từ trong bộ nhớ, cần phải xác định được: • Số thứ tự khối cần truy xuất • Vị trí của từ trong khối  Vị trí của từ trong khối được xác định dựa vào địa chỉ của từ và kích thước của một khối  Ví dụ: Địa chỉ bộ nhớ là 10 bit, kích thước khối là 16 (4 bit) Chỉ số khối trong bộ nhớ (6 bit) Địa chỉ của từ trong khối (4 bit) Cách tìm khối trong Cache (2)  Nhận dạng chỉ số khối – tương ứng trực tiếp • Chỉ số khối cache: xác định khối cần xét • Nhãn: dùng so sánh xem khối đang xét có phải khối cần tìm hay không Chỉ số khối trong bộ nhớ Địa chỉ của từ trong khối Nhãn Chỉ số khối cache Cách tìm khối trong Cache (3)  Nhận dạng chỉ số khối – hoàn toàn phối hợp • Chỉ số khối: được so sánh với nhãn của tất cả các khối trong cache để xác định khối cần tìm có trong cache hay không Chỉ số khối trong bộ nhớ Địa chỉ của từ trong khối Cách tìm khối trong Cache (4)  Nhận dạng chỉ số khối – tương ứng trực tiếp • Chỉ số khối cache: xác định tập hợp cần xét • Nhãn: dùng so sánh với nhãn của tất cả khối trong tập hợp đang xét để xác định khối cần tìm Chỉ số khối trong bộ nhớ Địa chỉ của từ trong khối Nhãn Chỉ số tập hợp Thay thế khối trong Cache  Thay thế ngẫu nhiên  Khối xưa nhất (LRU – Least Recently Used)  Vào trước ra trước (FIFO)  Tần số sử dụng ít nhất (LFU – Least Frequently Used) Chiến thuật ghi Cache  Ghi đồng thời • Dữ liệu được ghi cùng lúc vào khối trong cache và bộ nhớ trong  Ghi lại • Chỉ ghi lại trong cache, khi nào thay thế khối mới ghi lại trong bộ nhớ trong Hiệu quả của Cache  Thường đánh giá bằng thời gian thâm nhập trung bình của cache  Công thức tính Thời gian thâm nhập trung bình của cache = Thời gian thâm nhập thành công + Tỷ lệ thất bại ∗ Trừng phạt thất bại Cache duy nhất và Cache riêng lẻ  Cache duy nhất • Chứa cả lệnh và dữ liệu  Cache riêng lẻ • Phân biệt cache chứa lệnh và cache chứa dữ liệu  Cache riêng lẻ giúp tránh tranh chấp khi cùng đọc lệnh và dữ liệu, tối ưu về mặt kích thước và phối hợp giữa các khối Các mức Cache  Số mức tùy thuộc vào thiết kế, chênh lệch giữa CPU và bộ nhớ trong  Ký hiệu: L1, L2, L3,  Ví dụ: các mức cache của một CPU có 2 nhân Các kỹ thuật tăng băng thông của bộ nhớ trong  Nới rộng chiều dài ô nhớ (kích thước từ nhớ)  Bộ nhớ đan chéo đơn giản • Dùng chung đường địa chỉ với điều khiển ô nhớ  Bộ nhớ đan chéo tổ chức độc lập • Dùng riêng đường địa chỉ, có thể dùng riêng đường dữ liệu  Tránh xung đột giữa các dãy bộ nhớ • Thường xử lý bằng cách tăng số lượng dãy Bộ nhớ ảo (Virtual Memory)  Là cơ chế tự động hoán chuyển (swapping) dữ liệu giữa bộ nhớ trong và bộ nhớ ngoài để tăng dung lượng bộ nhớ có thể sử dụng của tiến trình (process)  Bộ nhớ ảo giúp tiến trình không phụ thuộc vào kích thước của bộ nhớ RAM có trong máy  Tăng khả năng đa chương, giảm nhẹ gánh nặng về bộ nhớ cho người lập trình Mô hình bộ nhớ ảo KIẾN TRÚC MÁY TÍNH Chương 5: Nhập – Xuất Nguyễn Duy Phúc duyphucit@live.com Vĩnh Long, 06/2013 Đĩa từ  Lưu trữ dài hạn các tập tin  Tham gia làm bộ nhớ ảo lúc chạy chương trình  Các thông số: • Dung lượng (GB) • Giao tiếp (PATA, SATA, SCSI) • Tốc độ quay (rpm) • Bộ nhớ đệm – cache (MB) Cấu tạo của đĩa cứng Tổ chức lưu trữ thông tin trong đĩa cứng Đĩa quang Thẻ nhớ Thẻ nhớ CompactFlash, MemoryStick, Secure Digital (SD) và xD Các chuẩn bus  ISA  PCI  AGP  PCI-Express  USB  e-SATA  IEEE 1394  Thunderbolt  Hệ thống đĩa dự phòng (RAID)  RAID – Redundant Arrays of Inexpensive Disks  Các mức RAID • RAID 0: tăng tốc độ, an toàn thấp • RAID 1: tăng an toàn • RAID 5: tăng tốc độ, tăng an toàn

Các file đính kèm theo tài liệu này:

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