Tổ chức máy tính và hợp ngữ

Tài liệu Tổ chức máy tính và hợp ngữ: TỔ CHỨC MÁY TÍNH VÀ HỢP NGỮ Chương 1 GIỚI THIỆU TỔ CHỨC MÁY TÍNH 2 Nội dung chương 1 I. Giới thiệu tổ chức máy tính II. Phương pháp nghiên cứu III. Tổng quan tổ chức máy vi tính 3 I. Giới thiệu tổ chức máy tính 1. Định nghĩa tổ chức máy tính 2. Mục tiêu của tổ chức máy tính 4 1. Định nghĩa Tổ Chức Máy Tính Các thuật ngữ tương đương  Kiến trúc máy tính – Computer Architecture  Cấu trúc máy tính  Tổ chức máy tính - Computer Organization Tổ chức máy tính: Cấu trúc Máy tính điện tử Hoạt động 5 Tổ chức máy tính (tt) Cấu trúc (structure): • Các thành phần kết nối tạo hệ thống Hoạt động (behavior, function): • Hoạt động của từng thành phần 6 Cấu trúc hệ thống Computer Main Memory Input Output Systems Interconnection Peripherals Communication lines Central Processing Unit Computer 7 Cấu trúc CPU Computer Arithmetic and Login Unit Control Unit Internal CPU Interconnection Regist...

pdf345 trang | Chia sẻ: Khủng Long | Lượt xem: 1143 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Tổ chức máy tính và hợp ngữ, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
TỔ CHỨC MÁY TÍNH VÀ HỢP NGỮ Chương 1 GIỚI THIỆU TỔ CHỨC MÁY TÍNH 2 Nội dung chương 1 I. Giới thiệu tổ chức máy tính II. Phương pháp nghiên cứu III. Tổng quan tổ chức máy vi tính 3 I. Giới thiệu tổ chức máy tính 1. Định nghĩa tổ chức máy tính 2. Mục tiêu của tổ chức máy tính 4 1. Định nghĩa Tổ Chức Máy Tính Các thuật ngữ tương đương  Kiến trúc máy tính – Computer Architecture  Cấu trúc máy tính  Tổ chức máy tính - Computer Organization Tổ chức máy tính: Cấu trúc Máy tính điện tử Hoạt động 5 Tổ chức máy tính (tt) Cấu trúc (structure): • Các thành phần kết nối tạo hệ thống Hoạt động (behavior, function): • Hoạt động của từng thành phần 6 Cấu trúc hệ thống Computer Main Memory Input Output Systems Interconnection Peripherals Communication lines Central Processing Unit Computer 7 Cấu trúc CPU Computer Arithmetic and Login Unit Control Unit Internal CPU Interconnection Registers CPU I/O Memory System Bus CPU 8 2. Mục tiêu của tổ chức máy tính  Thiết kế máy tính Đánh giá hoạt động máy tính 9 Các giai đoạn thiết kế máy tính Giai đoạn 1: • Dùng các cổng luận lý tạo các mạch chức năng, ví dụ: mạch cộng, bit nhớ Giai đoạn 2: • Dùng các mạch chức năng tạo các thành phần như bộ xử lý, bộ nhớ Giai đoạn 3: • Kết nối các thành phần thành máy tính 10 Các cổng luận lý cơ sở 11 Mạch cộng 1 bit 12 Bit nhớ dạng mạch cài D 13 II. Phương pháp nghiên cứu 1. Phân loại máy tính 2. Cấu trúc máy tính 3. Hoạt động của máy tính 14 1. Phân loại máy tính  Phân loại theo thứ tự xuất hiện  Lịch sử máy tính  Phân loại theo khả năng hoạt động 15 Sơ lược lịch sử máy tính Thế hệ máy tính Công nghệ phần cứng Nguyên lý hoạt động phần mềm 16 Sơ lược lịch sử máy tính (tt) Thế hệ 1 Đèn điện tử (1945-1953) Tuần tự; ngôn ngữ máy Thế hệ 2 Transistor (1954-1965) Dạng batch; ngôn ngữ cấp cao Thế hệ 3 Mạch tích hợp (IC) (1965-1980) Dạng đa chương Thế hệ 4 Mạch tích hợp mật độ cao (1980-) Dạng đa chương hiện đại 17 Các linh kiện chế tạo phần cứng máy tính 18 Phân loại máy tính theo khả năng hoạt động Máy vi tính – Microcomputer Personal Computer (PC) Máy tính nhỏ – Minicomputer Máy tính lớn – Mainframe Siêu máy tính – Supercomputer 19 Hiệu suất các bộ xử lý Intel 20 Các đơn vị 21 2. Cấu trúc máy tính Cấu trúc máy tính dạng đơn giản 22 Cấu trúc máy tính Von-Neumann 23 Cấu trúc máy tính Von-Neumann (tt) Bộ xử lý trung tâm – CPU Đơn vị điều khiển – Control Unit Đơn vị luận lý số – Arithmetic Logical Unit Bộ nhớ – Memory Hệ thống xuất nhập – Input/Output (I/O) Có khả năng thực hiện các lệnh tuần tự theo chu kỳ lấy-giải mã-thực hiện lệnh (Chu kỳ lệnh) 24 3. Hoạt động của máy tính  Thực hiện chương trình (program) Chương trình gồm một chuỗi các lệnh/chỉ thị (instruction) thuộc tập lệnh của CPU Chu kỳ nhập-xử lý-xuất • Nhập chương trình, dữ liệu • Thực hiện chương trình • Xuất kết quả Đơn vị hoạt động: thực hiện một lệnh 25 Chu kỳ lệnh 26 Chu kỳ lệnh (tt) 27 Hoạt động của máy tính theo các lớp luận lý 28 Phương pháp nghiên cứu Khảo sát tổ chức máy tính theo các thành phần cấu trúc Môn học tổ chức máy tính và hợp ngữ tổ chức máy vi tính và hợp ngữ 29 III. Tổng quan tổ chức máy vi tính 1. Tổ chức vật lý 2. Tổng quan về phần mềm 30 1. Tổ chức vật lý máy vi tính System Unit Power Supply Mainboard, CPU, RAM Expansion boards: video, network, sound, Drives: Floppy, Hard, CD/DVD Monitor Keyboard, mouse Speaker, Printer, Scanner, Modem, 31 Cấu trúc vật lý 32 Các đầu nối (connectors) 33 Bên trong system unit 34 Ví dụ 1: Mainboard 35 Ví dụ 2: Mainboard Intel D875PBZ 36 Ví dụ 2 (tt) 1. Pentium 4 socket 2. 875P Support chip 3. Memory sockets 4. AGP connector 5. Disk interface 6. Gigabit Ethernet 7. 5 PCI slots 8. USB 2.0 ports 9. Cooling technology 10. BIOS 37 Quá trình khởi động  Power Supply – Nguồn cấp điện ROM BIOS ROM extensions – ROM mở rộng Video – Card màn hình, Boot Drive – Đĩa khởi động Boot record – Mẩu tin khởi động Operating system – Hệ điều hành 38 2. Tổng quan về phần mềm  Phần mềm hệ thống  Phần mềm ứng dụng 39 Phần mềm ứng dụng Xử lý văn bản – Word Processor Microsoft Word, Corel WordPerfect Bảng tính – Spreadsheet Excel, Lotus 1-2-3 Quản trị cơ sở dữ liệu – Database Access Đồ hoạ – Graphics Multimedia, Games, CAD (Computer-Aided Design) 40 Phần mềm ứng dụng mạng Web Browser Internet Explorer, Netscape Web-based Applications  E-Mail Microsoft Outlook, Web-Mail 41 Phần mềm hệ thống Hệ điều hành (Operating System) Chương trình công cụ, tiện ích (Tools, Utilities) Công cụ lập trình (Programming Tools) 42 Hệ Điều Hành Với người sử dụng Được nạp vào bộ nhớ đầu tiên Quản lý các chu kỳ nhập-xử lý-xuất Với chương trình/người lập trình Mở rộng phần cứng máy tính Quản lý tài nguyên hệ thống Ví dụ: Microsoft Windows, Linux, UNIX, MAC OS, . 43 Chương trình công cụ, tiện ích Hỗ trợ quản lý hệ thống Ví dụ: Norton Commander Norton Ghost/Antivirus Hỗ trợ sử dụng hệ thống hiệu quả hơn Ví dụ: Download Accelerater 44 Công cụ lập trình Ngôn ngữ lập trình Ngôn ngữ máy – Machine language dạng nhị phân của tập lệnh CPU Ngôn ngữ dùng ký hiệu / Hợp ngữ Symbolic language / Assembly language dạng ký hiệu/gợi nhớ của tập lệnh CPU Ngôn ngữ cấp cao – High-level language 45 Thực thi chương trình hợp ngữ Viết chương trình nguồn dùng hợp ngữ Dùng chương trình dịch hợp ngữ (Assembler) chuyển đổi chương trình nguồn thành chương trình thực thi (trên ngôn ngữ máy tương ứng với một hệ điều hành).  Thực hiện chương trình trên ngôn ngữ máy 46 Thực thi chương trình ngôn ngữ cấp cao Viết chương trình nguồn dùng ngôn ngữ cấp cao Có hai phương pháp thực thi: • Biên dịch • Thông dịch/Phiên dịch 47 Biên dịch (compilation) Dùng chương trình biên dịch (Compiler) chuyển chương trình nguồn thành chương trình trên ngôn ngữ máy  Thực thi chương trình trên ngôn ngữ máy  Thực thi nhanh Cần biên dịch lại khi có thay đổi Ví dụ: ngôn ngữ C,C++, 48 Thông dịch (Interpretation) Dùng chương trình thông dịch (Interpreter) đọc và thực thi từng phát biểu trên chương trình nguồn  Luôn cần chương trình nguồn  Thực thi chậm hơn Ví dụ: Basic, Scripting language, 49 JAVA Có thể thực thi trên mọi môi trường Thực thi chương trình Java: Quá trình biên dịch Quá trình thông dịch trên JVM (Java Virtual Machine) 50 Môi trường lập trình Java II 51 Thực thi chương trình Java 52 Môn học Tổ chức máy tính và Hợp ngữ  Phần TỔ CHỨC MÁY TÍNH Chương 1 – Giới thiệu tổ chức máy tính Chương 2 – Bus Chương 3 – Bộ xử lý Chương 4 – Bộ nhớ Chương 5 – Tập lệnh Chương 6 – Một số dạng kiến trúc máy tính  Phần HỢP NGỮ TỔ CHỨC MÁY TÍNH VÀ HỢP NGỮ Chương 2 BUS (HỆ THỐNG VẬN CHUYỂN THÔNG TIN) Nội dung chương 2 I. Các khái niệm cơ bản II. Cấu trúc máy vi tính III. Một số thiết bị ngoại vi I. Các khái niệm cơ bản 1. Khái niệm về Clock 2. Bus 3. Các tiêu chuẩn bus 1. Khái niệm về Clock Cần kiểm soát về thời gian trên hệ thống: Có sự trễ (delay) của tín hiệu Kiểm soát thứ tự thực hiện Hai kỹ thuật cơ bản: Đồng bộ - Synchronous dùng thêm tín hiệu clock (xung nhịp) Bất đồng bộ - Asynchronous dùng thêm các tín hiệu bắt tay Tín hiệu clock Rising Edge: Cạnh lên Falling Edge: Cạnh xuống High: Mức cao Low: Mức thấp Thông số của clock Tần số - Frequency: số chu kỳ trong 1 giây Chu kỳ - Cycle: chiều dài 1 chu kỳ Ví dụ: 1GHZ = 109 chu kỳ/giây  1 chu kỳ = 10-9 giây = 1 nano giây Tác dụng của clock Mọi thao tác được thực hiện trong thời gian bằng một số nguyên chu kỳ clock Ví dụ:  Lệnh cộng – 1 chu kỳ CPU đọc 1 từ nhớ - 3 chu kỳ • chu kỳ 1: phát địa chỉ • chu kỳ 2: chờ • chu kỳ 3: đọc dữ liệu 2.Bus Bus: đường dẫn tín hiệu chung giữa các thiết bị Các thành phần trên bus Data bus – Bus dữ liệu • Truyền dữ liệu • Kích thước: 8, 16, 32, 64 bit  hiệu suất Address bus – Bus địa chỉ • Xác định thiết bị gởi, nhận dữ liệu • Kích thước  khả năng quản lý bộ nhớ Control bus – Bus điều khiển • Tín hiệu clock • Đọc, ghi bộ nhớ và thiết bị I/O Hệ thống máy tính với nhiều bus 3. Các tiêu chuẩn bus  PC bus – 8 bit  ISA (Industry Standard Architecture) bus – 16 bit  PCI (Peripheral Component Interconnect) bus – 32/64 bit  Thông số các loại bus ISA bus Bus dữ liệu: 16 bit Xung nhịp (Clock): 8.33 MHz  Băng thông (bandwidth) ~ 16.7 MB/sec PCI bus Do Intel thiết kế, độc lập với CPU Băng thông rộng Hỗ trợ Plug-and-Play (thiết lập cấu hình tự động)  PCI 1.0, 2.0, 2.1, 2.2 PCI bus (tt) Bus dữ liệu: 32 bit, 64 bit Xung nhịp: 33 MHz, 66 MHz Băng thông (bandwidth) ~ 133MB/sec ~ 528MB/sec PCI slots PCI Express bus  Phát triển kiến trúc PCI  tương thích với PCI Băng thông rộng Bắt đầu từ 200 MB/sec, có thể x2, ..,x32 Hỗ trợ tốt hơn cho truyền thông, đa phương tiện (audio, video)  Thêm bớt thiết bị khi máy hoạt động (Hot plugging) PCI Epress (tt) PCI Express (tt) PCI Epress (tt) PCI Express slots PCI Express slots (x4,x16,x1,x16) và PCI slot II. Cấu trúc máy vi tính 1. Cấu trúc máy vi tính 2. Các thao tác cơ sở 3. Các phương pháp xuất nhập 1. Cấu trúc máy vi tính  1 CPU hay nhiều CPU (SMP, Symmetric MultiProcessor) Bộ nhớ Các thiết bị I/O • Mạch điều khiển (Controller) • Thiết bị (Device) Các loại bus Cấu trúc tiêu biểu máy vi tính – Pentium Cấu trúc tiêu biểu máy vi tính – Pentium 4 Các thành phần chính trên mainboard Kết nối các thành phần trên mainboard AGP (Accelerated Graphics Port) AGP (Accelerated Graphic Port) Do Intel thiết kế  Tăng tốc độ hiển thị hình 3D, hình động Dùng 1 bus riêng (AGP) Chip AGP có thể đồng thời truy cập bộ nhớ với CPU Băng thông 533 MB/sec SCSI (Small Computer System Interface) Dạng I/O bus, điều khiển nhiều loại thiết bị: đĩa cứng, CDROM, scanner, máy in .. Có thể đến 15 thiết bị/cáp Một số thông số SCSI IDE (Integrated Drive Electronics) Còn gọi là ATA (AT Attachment)  EIDE (Extended IDE)  ATA-2 • 4 thiết bị • Điều khiển CDROM • Hỗ trợ LBA (Logical Block Addressing) ATA-4  Ultra ATA • ATA-33/66/100 ..: tốc độ DMA là 33MHz/.. Serial ATA (SATA)  Tốc độ cao, từ 150 MB/sec Chỉ điều khiển đĩa Dễ cài đặt Serial ATA (tt) USB (Universal Serial Bus) Kết nối các thiết bị đặt ngoài (external) Đặc điểm: • Thống nhất đầu nối • Cấp nguồn • Thêm bớt khi máy hoạt động (Hot-plugging) • Tự động thiết lập cấu hình (Plug-and-Play)  Tốc độ: 12 Mbps(1.0), 450 Mbps(2.0)  7 thiết bị, có thể đến 127 thiết bị với Hub Ví dụ USB hub 2. Các thao tác cơ sở  Tính toán, thực thi bên trong CPU Đọc ghi bộ nhớ Đọc ghi thiết bị xuất nhập 3. Các phương pháp xuất nhập Xuất nhập theo chương trình Programmed I/O Xuất nhập dùng kỹ thuật ngắt Interrupt-driven I/O Xuất nhập dùng kỹ thuật truy xuất trực tiếp bộ nhớ Direct Memory Access (DMA) Địa chỉ thiết bị xuất nhập (Địa chỉ I/O) Memory mapped I/O • Thiết bị và bộ nhớ dùng chung một không gian địa chỉ • Xuất nhập tương đương đọc ghi bộ nhớ • Không cần lệnh I/O  Isolated I/O • Dùng không gian địa chỉ riêng • Cần tín hiệu điều khiển I/O riêng • Cần các lệnh I/O Xuất nhập theo chương trình CPU trực tiếp điều khiển I/O • Kiểm tra trạng thái thiết bị • Dùng các lệnh đọc/ghi • Trao đổi dữ liệu CPU phải chờ thiết bị hoàn thành thao tác • Định kỳ kiểm tra trạng thái thiết bị  Lãng phí thời gian CPU  Thông số thiết bị: địa chỉ I/O Xuất nhập dùng kỹ thuật ngắt Đặc điểm: CPU không phải chờ CPU không cần kiểm tra thiết bị hoàn thành thao tác  Thiết bị yêu cầu ngắt quãng khi sẵn sàng Xuất nhập dùng kỹ thuật ngắt (tt) Yêu cầu:  Phần cứng PIC (Programmable Interrupt Controller) Chương trình xử lý ngắt quãng (Interrupt Handler): • Thuộc hệ điều hành • Thuộc chương trình ứng dụng Ví dụ: CPU đọc 1 thiết bị dùng ngắt CPU phát lệnh đọc  Thiết bị lấy dữ liệu trong khi CPU thực hiện việc khác  Thiết bị ngắt quãng CPU CPU yêu cầu dữ liệu  Thiết bị truyền dữ liệu Chuyển điều khiển khi có ngắt Thông số thiết bị dùng ngắt  I/O address địa chỉ I/O  IRQ i (Interrupt ReQuest) Yêu cầu ngắt Xuất nhập dùng DMA Có phần cứng hỗ trợ DMAC (DMA Controller) DMAC thay thế CPU thực hiện trao đổi dữ liệu giữa bộ nhớ và thiết bị Hoạt động DMA CPU khởi động DMAC: • Địa chỉ thiết bị • Địa chỉ vùng nhớ • Chiều trao đổi dữ liệu • Kích thước dữ liệu CPU thực hiện việc khác DMAC thực hiện trao đổi dữ liệu DMAC gởi tín hiệu ngắt khi hoàn thành Thông số thiết bị dùng DMA  I/O address địa chỉ I/O  IRQ i (Interrupt ReQuest) Yêu cầu ngắt DMA channel Kênh DMA III. Một số thiết bị ngoại vi 1. Đĩa từ 2. CD, DVD 3. Màn hình 4. Máy in 1. Đĩa từ Đĩa cứng với 4 đĩa Cấu trúc một mặt đĩa Đĩa từ (tt)  Track, Sector, Cylinder Đơn vị truy xuất: sector Các bước truy xuất sector: • Di chuyển hệ thống đầu từ đến cylinder chứa sector – Seek time (mili sec) • Chờ sector xoay đến vị trí đầu từ - Rotational latency (rpm) • Truy xuất sector  Thông số tổng quát: tốc độ truy xuất (Data Transfer Rate) theo MB/sec Đĩa từ (tt) Thông số các loại đĩa mềm 2. Giới thiệu CD và DVD a. CDROM b. DVD a. CDROM Đĩa CDROM • Đường kính: 120mm • Dày: 1.2mm • Dung lượng: 650MB/70phút, 700MB/80phút • Lớp nhựa, 1 hay 2 lớp kim loại, lớp bảo vệ  Thông số ổ đĩa CD (CD Drive): • Loại (internal/external) • Giao tiếp bus (IDE/SCSI) • Tốc độ (theo đơn vị 1x = 150 KB/sec) Cấu trúc luận lý đĩa CDROM Cấu trúc vật lý đĩa CDROM Ổ đĩa CD Các dạng đĩa CDROM CDROM CD – Recordable CD – Rewritable Cấu trúc đĩa CD-Recordable 2. DVD (Digital Versatile Disk) Hình thức đĩa và ổ đĩa DVD tương tự CD Đặc điểm so với CDROM: • Dung lượng lớn hơn (4.7GB) • Dùng loại tia laser tần số cao hơn • Tốc độ truy xuất cao hơn (1.4MB/sec) Các loại dung lượng đĩa DVD Đĩa DVD dạng hai mặt, hai lớp Các dạng đĩa DVD DVD DVD – Recordable DVD – Rewritable 3. Màn hình Hai dạng thông dụng: Dùng đèn hình CRT Dùng tinh thể lỏng LCD Màn hình dạng CRT (Cathod Ray Tube) a. CRT b. Quét tia điện tử Màn hình LCD (Liquid Crystal Display) Hoạt động màn hình LCD Thông số màn hình CRT Dot pitch – Kích thước điểm ảnh, ví dụ 0.22mm Refresh rate – Tốc độ làm tươi (hz) Resolution – Độ phân giải Monitor screen size – Kích thước màn hình, ví dụ 17” Display colors – Số màu Thông số màn hình LCD  Resolution - Độ phân giải • Theo kích thước (screen size)  Viewing angle – Góc nhìn • Khoảng 120  170 độ  Brightness – Độ sáng • Theo candelas/cm2 – Khoảng 250  500  Độ tương phản – Contrast ratio • Tỉ số giữa trắng/đen – Khoảng 450  1000  Tốc độ đáp ứng – Response rate • Tốc độ thay đổi màu – Theo milisec Một số độ phân giải màn hình Kích thước màn hình 4. Máy in Các loại máy in:  In kim – Dot-matrix printer  In phun – InkJet  In laser – Laser printer Thông số chính: Độ phân giải – dots per inch (dpi)  Tốc độ in – pages per minute (ppm) Máy in phun Máy in Laser TỔ CHỨC MÁY TÍNH VÀ HỢP NGỮ Chương 3 BỘ XỬ LÝ 2 Nội dung chương 3 I. Cấu trúc bộ xử lý II. Các phương pháp nâng cao khả năng hoạt động CPU III. Ví dụ CPU INTEL 32 bit 3 I. Cấu trúc bộ xử lý 1. Cấu trúc bộ xử lý 2. Thanh ghi 3. Đơn vị xử lý 4. Đơn vị điều khiển 4 1. Cấu trúc bộ xử lý Các thanh ghi Đơn vị xử lý Đơn vị điều khiển 5 CPU và system bus 6 Cấu trúc trong CPU 7 Ví dụ: Lấy lệnh Thanh ghi PC chứa địa chỉ lệnh tiếp theo Địa chỉ chuyển vào thanh ghi MAR Địa chỉ đưa lên bus địa chỉ Đơn vị điều khiển yêu cầu đọc bộ nhớ Kết quả đưa lên data bus, sao chép vào thanh ghi MBR, đưa vào thanh ghi IR 8 Dòng dữ liệu của giai đoạn lấy lệnh 9 2. Thanh ghi (registers)  Thanh ghi = ô nhớ bên trong CPU Nơi làm việc trong CPU Hai dạng thanh ghi: • User visible registers: sử dụng bởi phần mềm • Control and status registers: sử dụng bên trong CPU 10 User visible registers Đa năng (General Purpose, GP) Dữ liệu (Data) Địa chỉ (Address) Mã điều kiện (Condition codes) 11 Control and Status registers  Program Counter (PC) Bộ đếm chương trình  Instruction Decoding Register Thanh ghi lệnh Memory Address Register Lưu địa chỉ khi truy xuất bộ nhớ Memory Buffer Register Lưu giá trị từ nhớ 12 Ví dụ thanh ghi 13 3. Đơn vị xử lý  Thực hiện các thao tác xử lý cơ sở ALU - Arithmetic Logical Unit (Đơn vị số học luận lý) Thao tác số học: cộng, trừ, nhân, chia Thao tác luận lý: NOT, AND, OR, XOR  Integer Execution Unit 14 Các dạng đơn vị xử lý  Floating-Point Execution Unit (FPU) Thực hiện xử lý trên số dấu chấm động MMX Execution Unit Thực hiện xử lý trên dữ liệu MMX  Multimedia Unit 15 4. Đơn vị điều khiển  Thực hiện lấy lệnh, giải mã lệnh  Tạo các tín hiệu điều khiển bus Điều khiển đơn vị xử lý 16 Hai phương pháp điều khiển đơn vị xử lý  Tín hiệu (hard-wired control) Chương trình (microprogrammed control) chương trình bên trong đơn vị điều khiển  vi chương trình (microprogram) 17 Hard-wired control unit 18 Microprogrammed control 19 Thông dịch lệnh bằng vi chương trình Bộ nhớ Bộ nhớ điều khiển Lệnh i Vi chương trình Thông dịch 20 Vi lệnh Vi chương trình bao gồm các vi lệnh (MicroInstruction) Một vi lệnh gồm các bit tương đương với một nhóm tín hiệu Kiến trúc trong của CPU: vi kiến trúc (MicroArchitecture) 21 Dùng tín hiệu Dùng vi chương trình Tốc độ thực thi một lệnh Nhanh hơn Chậm hơn Số lượng lệnh Ít hơn Nhiều hơn Chương trình biên dịch Phức tạp hơn Đơn giản hơn Ví dụ SPARC, PowerPC Intel CPU Dạng kiến trúc máy tính RISC CISC So sánh hai dạng thực hiện đơn vị xử lý 22 II. Các phương pháp nâng cao khả năng hoạt động CPU 1. Tác động clock bên trong CPU 2. Thực hiện lệnh song song 3. Cơ chế đường ống 4. Cache 23 1. Tác động clock bên trong CPU  Tăng tần số clock trong CPU (internal clock / clock subcycle)  tăng tốc độ thực hiện lệnh Clock bên trong CPU được điều khiển bởi clock trên mainboard (external clock)  Tần số internal clock là bội số của tần số external clock 24 2. Thực hiện lệnh song song  Phân loại Flynn  Thực hiện lệnh song song trên bộ vi xử lý Máy vi tính nhiều bộ xử lý 25 Phân loại kiến trúc máy tính theo Flynn SISD – Single Intruction stream Single Data stream SIMD – Single Intruction stream Multiple Data stream MISD – Multiple Intruction stream Single Data stream MIMD – Multiple Intruction stream Multiple Data stream 26 Thực hiện lệnh song song trên bộ vi xử lý  Thực hiện nhiều lệnh trong một chu kỳ clock CPU Intel: • Lệnh SIMD • Cấu trúc superscalar 27 Ví dụ: superscalar processor 28 Máy tính nhiều bộ xử lý Kiến trúc SMP (Symmetric MultiProcessor) • Nhiều bộ xử lý • Dùng chung bộ nhớ • Truyền thông qua bộ nhớ Kiến trúc MMP (Massively Parallel Processors) • Nhiều bộ xử lý • Bộ nhớ phân tán • Truyền thông qua mạng 29 3. Cơ chế đường ống (Pipelining) Bộ xử lý gồm các phần tử xử lý độc lập Processing Elements/Stage Hoạt động như dây chuyền sản xuất  Tại một thời điểm: • Si thực hiện lệnh j, đưa kết quả cho Si+1 • Si-1 thực hiện lệnh j+1, đưa kết quả cho Si 30 Ví dụ cơ chế đường ống a. Bộ xử lý có 5 stage b. Trạng thái các stage trong 9 clock và 9 lệnh 31 Ví dụ cơ chế đường ống (tt) Mỗi lệnh phải thực hiện trong 5 clock qua 5 stage  Từ lệnh 2 coi như chỉ cần 1 clock để thực hiện 1 lệnh 32 Mở rộng cơ chế đường ống Hai đường ống với 5 phần tử dùng chung phần tử lấy lệnh 33 Lệnh rẽ nhánh (Branch instruction) if (i= =0) CMP i,0 ; so sánh i, 0 k = 1; BNE Else ; rẽ đến Else nếu i 0 else Then: MOV k,1 ; gán k = 1 nếu i = 0 k = 2; BR Next ; rẽ không điều kiện Else: MOV k,2 ; gán k = 2 Next: (a) (b)  Một dạng rẽ nhánh: phát biểu IF  Dạng hợp ngữ tương ứng 34 Lệnh rẽ nhánh (tt) Khi có lệnh rẽ nhánh thì cơ chế đường ống bị mất tác dụng Các dạng rẽ nhánh • Có điều kiện: IF, Loop • Không điều kiện  Tỷ lệ lệnh rẽ nhánh: 20 – 30 % Xử lý: Dự đoán rẽ nhánh (Branch Prediction) 35 4. Cache a. Khái niệm b. Hoạt động c. Phân loại d. Thay thế phần tử 36 a. Khái niệm cache  Bộ nhớ dung lượng nhỏ, tốc độ cao  Giúp CPU truy xuất bộ nhớ nhanh hơn 37 b. Hoạt động cache Giả sử CPU đọc 1 khối nhớ k lần Nếu không có cache: • CPU đọc khối trên bộ nhớ k lần Nếu có cache: • Lần 1: CPU đọc khối trên bộ nhớ và ghi khối vào cache • k-1lần còn lại: CPU đọc khối trên cache 38 Tỷ số thành công (hit ratio, h) Xét k: • k >> 1: h  1, chỉ truy xuất trên cache • k = 1: cache là có hại  Truy xuất trên cache: cache hit Không truy xuất được trên cache: cache miss Số lần truy xuất thành công trên cache k -1 Tổng số lần truy xuất k h = 39 Hoạt động khi có cache Khi CPU cần truy xuất 1 khối nhớ, CPU tìm khối trên cache. Nếu khối có trên cache: • CPU truy xuất khối trên cache Nếu khối chưa có trên cache: • CPU truy xuất khối trên bộ nhớ • CPU ghi khối vào cache 40 c. Phân loại cache Cache cấp 1 – First level cache (L1) • Ở trong CPU • Kích thước nhỏ (vài chục KB) Cache cấp 2 – Second level cache (L2) • Ở ngoài CPU • Kích thước lớn (vài trăm KB) 41 Các loại cache 42 Disk cache Mở rộng khái niệm cache: giúp CPU truy xuất các loại đĩa nhanh hơn Dùng phần cứng: linh kiện nhớ trên các ổ đĩa cứng, CD Dùng phần mềm: dùng một phần bộ nhớ trong làm disk cache 43 d. Thay thế phần tử trên cache Khi cache đầy mà cần ghi thêm vào cache thì phải thay thế một phần tử trên cache • Nếu phần tử bị thay thế có thay đổi nôi dung thi phải ghi trở lại bộ nhớ Có các phương pháp chọn phần tử thay thế: Optimal, FIFO, LRU (thông dụng)  Least Recently Used (LRU): chọn phần tử tồn tại trên cache trong khoảng thời gian lớn nhất mà không được sử dụng 44 III. Ví dụ CPU INTEL 32 bit 1. Giới thiệu 2. Các chế độ hoạt động 3. Kỹ thuật siêu phân luồng (Hyper-Threading) 4. Kỹ thuật đa lõi (multi-core) 5. Các CPU Intel 32 bit 6. Cấu trúc trong Pentium 4 45 1. Giới thiệu  Intel Architecture 32 – IA32 • Các thanh ghi 32 bit • Các đơn vị xử lý kích thước 32 bit  Intel 64 Architecture • Các thanh ghi 64 bit • Có thêm chế độ hoạt động 32 bit mở rộng (IA-32e) 46 Các CPU 32 bit  80386/80486  Pentium (1993)  P6 family (1995-1999) • Pentium Pro, Pentium II, Celeron, Pentium III, Pentium III Xeon  Pentium 4 (2000-2006)  Xeon (2001-2006)  Pentium M (2003-x)  Pentium Processor Extreme Edition (2005-2007)  Core Duo và Core Solo (2006-x)  47 Giới thiệu (tt) Xeon • Cache L2 lớn hơn • Tốc độ cao hơn • Dùng cho server Celeron • Cache cấp 2 nhỏ hơn • Dạng PPGA (Plastic Pin Grid Array) • Giảm giá thành 48 2. Các chế độ hoạt động  Protected mode – Chế độ bảo vệ • Trạng thái chính của CPU • Thực hiện mọi lệnh với hiệu suất cao nhất • Có thể thực hiện các phần mềm viết trên chế độ thực trong Virtual-8086 mode Real-address mode – Chế độ thực • Môi trường lập trình như 8086 có thêm vài mở rộng • CPU ở chế độ thực khi cấp điện hay reset 49 Các chế độ hoạt động (tt)  System Management Mode (SMM) – Chế độ quản trị hệ thống • Chuyển sang một không gian địa chỉ khác và giữ nguyên trạng thái CPU  phục vụ cho các hệ điều hành thực hiện standby, power management, security • Khi trở về từ SMM, CPU phục hồi lại trạng thái trước đó 50 3. Kỹ thuật siêu phân luồng  Tăng hiệu suất các CPU Intel 32 bit khi thực thi ứng dụng và hệ điều hành đa luồng (multi-threaded) hay ứng dụng đơn luồng (single-threaded) trong môi trường đa chương Cho phép một CPU vật lý thực hiện nhiều luồng (thread) đồng thời 51 Kiến trúc siêu phân luồng Một CPU vật lý bao gồm 2 hay nhiều CPU luận lý với các trạng thái kiến trúc IA-32 Các CPU luận lý dùng chung phần nhân của CPU vật lý là phần giao tiếp bus và phần thực hiện lệnh 52 So sánh siêu phân luồng và đa xử lý 53 Yêu cầu hiện thực siêu phân luồng CPU hỗ trợ siêu phân luồng BIOS và Chipset hỗ trợ siêu phân luồng Hệ điều hành tận dụng kỹ thuật siêu phân luồng 54 4. Kỹ thuật đa lõi (multi-core)  Tăng khả năng phần cứng siêu phân luồng bằng cách sử dụng hai hay nhiều lõi thực thi (execution core) trong một CPU vật lý (physical package) Các CPU đa lõi: • Pentium Processor Extreme Edition • Pentium D • Intel Core • Intel Core 2 55 Kiến trúc đa lõi 56 Kiến trúc đa lõi (tt) 57 5. Các CPU Intel 32 bit 58 CPU Intel 32 bit (tt) 59 CPU Intel 32 bit (tt) 60 CPU Intel 32 bit (tt) 61 CPU Intel 32 bit (tt) 62 Các loại CPU Intel 63 Một số loại CPU Core 2 Duo 64 Một số loại CPU Pentium D 65 6. Cấu trúc trong Pentium 4 Pentium 4 dùng vi kiến trúc NetBurst:  Thực hiện lệnh nhanh: • ALU nhanh gấp hai tần số CPU • Thao tác số nguyên cơ bản thực hiện trong ½ clock  Cơ chế đường ống: • Có thể đến 126 lệnh  Cache L1 có các loại: • D-Cache: dùng cho dữ liệu • Ececution Trace Cache lưu các lệnh đã được giải mã (decoded instrutions) 66 Cấu trúc CPU Pentium 4 67 Hoạt động cơ bản Cơ chế đường ống với 3 đơn vị xử lý:  Front end: lấy và giải mã lệnh  Execution: thực thi các vi lệnh Out of order control: hỗ trợ xử lý đồng thời các vi lệnh, lưu trữ kết quả Các đơn vị phối hợp hoạt động theo ROB (ReOder Buffer) 68 Hoạt động cơ bản (tt)  Front end: lấy lệnh, chia thành các vi lệnh và lưu trên ROB  Execution : lấy các vi lệnh từ ROB và thực thi. Out of order control :hoàn tất các vi lệnh, lưu kết quả lên các thanh ghi Các vi lệnh đến ROB theo thứ tự, thực thi không cần đúng thứ tự, kết quả lưu theo thứ tự. 69 CPU Pentium 4 PGA 775 và Pentium 4 M TỔ CHỨC MÁY TÍNH VÀ HỢP NGỮ Chương 4 BỘ NHỚ 2 Nội dung chương 4 1. Tổ chức thứ bậc của bộ nhớ 2. Bộ nhớ trong 3. Giới thiệu bộ nhớ ảo 3 I. Tổ chức thứ bậc của bộ nhớ 4 Sự thay đổi tính chất theo thứ bậc Giá thành giảm Dung lượng tăng  Thời gian truy xuất tăng Bộ xử lý giảm truy xuất 5 Nguyên lý địa phương Có 3 dạng truy xuất địa phương:  Phần tử đã truy xuất trong quá khứ gần thường được truy xuất trong tương lai gần Việc truy xuất thường được thực hiện trên một vùng nhớ liên tục Các lệnh thường được truy xuất tuần tự 6 Nguyên lý điạ phương và tổ chức thứ bậc bộ nhớ Khi cần truy xuất CPU tìm dữ liệu trên vùng nhớ cấp trên Nếu không có (miss) thì chuyển một vùng nhớ bao gồm dữ liệu cần truy xuất từ vùng nhớ cấp thấp hơn 7 II. Bộ nhớ trong 1. Bit nhớ 2. Tổ chức bộ nhớ 3. Phân loại linh kiện nhớ 4. Tính chất bộ nhớ 8 1. Bit nhớ Bit nhớ dạng mạch cài D  Trạng thái ghi: CK = 1  Q = D  Trạng thái đọc: CK = 0  Q không đổi giá trị 9 Bit nhớ (tt)  Là đơn vị cấu tạo bộ nhớ Có khả năng “nhớ” 1 bit Dữ liệu thay đổi khi có ghi dữ liệu khác 10 2. Thanh ghi a. Thanh ghi 4 bit b. Sơ đồ khối 11 Thanh ghi (tt)  Thanh ghi là ô nhớ đặt trong CPU  Lưu các giá trị trung gian, thông tin điều khiển 12 3. Tổ chức bộ nhớ Bộ nhớ gồm các ô nhớ Mỗi ô nhớ có một địa chỉ Ô nhớ là đơn vị hoạt động của bộ nhớ Hai trạng thái hoạt động: • Đọc • Ghi 13 Yêu cầu tổ chức bộ nhớ  Số tín hiệu không tăng tuyến tính theo dung lượng bộ nhớ Có thể ghép các vi mạch nhớ tạo bộ nhớ lớn hơn 14 Ví dụ Vi mạch nhớ 512KB 15 Các nhóm tín hiệu Địa chỉ • có 19 tín hiệu vì có 512K = 2 19 ô nhớ  có n tín hiệu địa chỉ nếu có 2 n ô nhớ • là ngõ vào Dữ liệu • có 8 tín hiệu vì ô nhớ có 8 bit  có m tín hiệu nếu ô nhớ có m bit • là ngõ vào (trạng thái ghi), là ngõ ra (trạng thái đọc) 16 Các nhóm tín hiệu (tt) Điều khiển • CS (Chip select): chọn vi mạch • WE (Write Enable): phân biệt đọc và ghi • OE (Output Enable): cho phép ngõ ra 17 4. Phân loại linh kiện nhớ ROM (Read Only Memory) RAM (Random Access Memory) 18 ROM Bộ nhớ chỉ đọc (dữ liệu đã có) Không mất dữ liệu khi không cấp điện Dùng cho ROM BIOS, ROM Extensions, vi chương trình  Phân loại theo cách ghi dữ liệu  FIRMWARE = Hard software 19 Các loại ROM  ROM – Read Only Memory • Nhà sản xuất ghi  PROM – Programmable ROM • Người sử dụng ghi 1 lần • Dạng WORM (Write-Once-Read-Many)  EPROM – Erasable PROM • Người sử dụng có thể xoá toàn bộ dữ liệu với thiết bị xoá dùng tia cực tím  EEPROM – Electrically EPROM • Người sử dụng có thể xoá từng byte dữ liệu bằng điện, không cần thiết bị xoá 20 Các loại ROM (tt)  Flash memory • là dạng EEPROM • có thể ghi, xoá theo khối dữ liệu • nhanh hơn EEPROM 21 RAM Bộ nhớ có thể đọc, ghi Mất dữ liệu khi không cấp điện Có 2 dạng chính • SRAM – Static RAM: RAM tĩnh • DRAM – Dynamic RAM: RAM động 22 RAM tĩnh Cấu tạo từ các bit nhớ dạng tương tự mạch cài D  So sánh với RAM động: • Truy xuất nhanh hơn • Giá thành cao hơn • Tiêu thụ nhiều năng lượng hơn • Mật độ tích hợp (số bits/chip) ít hơn Dùng làm cache 23 RAM động Cấu tạo từ mạch dạng tụ điện Mất dữ liệu sau một khoảng thời gian xác định dù vẫn được cấp điện  cần phải ghi lại dữ liệu đang lưu trữ  dùng mạch làm tươi (refresh) trên vi mạch nhớ Dùng làm bộ nhớ chính (main memory), bộ nhớ màn hình (video memory) 24 RAM động 25 Phân loại RAM động  Theo hình thức • SIMM (Single Inline Memory Module) • DIMM (Dual Inline Memory Module) • RIMM (Rambus Inline Memory Module)  Theo hoạt động • RAM DAC • SDRAM • DDR-SDRAM • RDRAM 26 SIMM và DIMM SIMM DIMM 72 tín hiệu 168 tín hiệu 27 SIMM, DIMM và SO (Small Outline) DIMM 28 RIMM RIMM – 184 tín hiệu 29 Các loại RAM động RAMDAC (RAM Digital-Analog Converter) • Dùng cho video RAM  SDRAM (Synchronous DRAM) • Đồng bộ với system clock • Truyền dữ liệu theo khối DDR-SDRAM (Double Data Rate-SDRAM) • Gởi dữ liệu 2 lần trong 1 chu kỳ clock DDR2 – Dual-Channel DDR • Dùng hai kênh bộ nhớ 30 Các loại RAM động (tt) RDRAM (Rambus DRAM) • Dùng với Pentium-4, Itanium • Tốc độ clock cao, từ 400 Mhz  SLDRAM (Synchronous-Link DRAM) • 64 bit dữ liệu • Gởi dữ liệu 2 lần trong 1 chu kỳ 31 Memory Controller (thuộc về ChipSet) 32 Dual-Channel memory (DDR2) 33 Dual-Channel memory (DDR2) (tt) 34 Băng thông 35 5. Tính chất bộ nhớ Dung lượng bộ nhớ là lũy thừa của 2  Thông số chính: • Thời gian truy xuất (access time) Thời gian từ khi có địa chỉ đến khi dữ liệu ổn định • Tốc độ truy xuất (transfer rate) Tính theo bytes/giây 36 III. Giới thiệu bộ nhớ ảo 1. Khái niệm bộ nhớ ảo 2. Bộ nhớ ảo dạng phân trang 3. Bộ nhớ ảo dạng phân đoạn 4. Bộ nhớ ảo dạng phân đoạn có phân trang 37 1. Khái niệm bộ nhớ ảo Bộ nhớ ảo (virtual memory): Kỹ thuật do hệ điều hành, có hỗ trợ của phần cứng Cho phép thực hiện chương trình lớn hơn bộ nhớ trong bằng cách sử dụng bộ nhớ ngoài Hoạt động dạng overlay tự động Bộ nhớ ảo = bộ nhớ trên đĩa 38 Hoạt động bộ nhớ ảo Chương trình được viết trên không gian địa chỉ ảo, là thông số của CPU và hệ điều hành Khi thực thi, hệ điều hành: • nạp chương trình vào bộ nhớ • chuyển đổi địa chỉ ảo thành địa chỉ vật lý • truy xuất trên bộ nhớ vật lý 39 Các dạng bộ nhớ ảo Dạng phân trang (paging) Dạng phân đoạn (segmentation) Dạng phân đoạn có phân trang (Paged segmentation / Segmentation with paging) 40 2. Bộ nhớ ảo dạng phân trang a. Tổ chức phân trang b. Chuyển đổi địa chỉ c. Nạp trang d. Thay thế trang 41 a. Tổ chức phân trang Không gian địa chỉ ảo chia thành các trang (page) Bộ nhớ được chia thành các khung trang (page frame), chứa được một trang • Các trang của một chương trình khi ở trên bộ nhớ không cần ở các vị trí liên tục • Số trang >> số khung Có bảng trang (page table) quản lý các trang 42 Bảng trang Có N dòng, với N là số trang  mỗi dòng tương ứng với 1 trang Cấu trúc 1 dòng: • Valid bit Valid = 0 nếu trang chưa có trên bộ nhớ Valid = 1 nếu trang đang có trên bộ nhớ • Frame Number (Frame #) Số thứ tự khung trang đang chứa trang 43 Ví dụ Bộ nhớ ảo có 8 trang, bộ nhớ vật lý có 4 khung Bảng trang có 8 phần tử 44 b. Chuyển đổi địa chỉ Địa chỉ ảo theo phân trang • Page Number: số thứ tự trang • Offset: địa chỉ trong trang Địa chỉ vật lý • Page Number: số thứ tự khung trang • Offset: địa chỉ trong khung trang Offset Page Number Offset Frame Number 45 Sơ đồ chuyển đổi địa chỉ 46 Truy xuất dữ liệu theo địa chỉ ảo  Tách page # và offset từ địa chỉ ảo  Chuyển page # thành frame # bằng cách truy xuất bảng trang A. Tìm phần tử quản lý trang B. Kiểm tra valid bit 1. Valid = 1 a. Thay page # bằng frame # b. Truy xuất dữ liệu trên khung với vị trí offset 47 Truy xuất dữ liệu theo địa chỉ ảo (tt) 2. Valid = 0  lỗi trang a. Tìm trang trên đĩa b. Tìm một khung trống (có thể phải thay thế trang nếu các khung đầy) c. Sao chép trang vào khung trống d. Cập nhật bảng trang (valid = 1, frame # mới) e. Thực hiện truy xuất như bước 1 48 Phần cứng hỗ trợ chuyển đổi địa chỉ ảo  TLB (Translation Look-aside Buffer) • Ở trong CPU • Cache các phần tử trên bảng trang Khi chuyển đổi địa chỉ, tìm phần tử quản lý trang trên TLB trước, nếu không có thì tìm trên bảng trang 49 Sơ đồ chuyển đổi địa chỉ với TLB 50 c. Nạp trang Có 2 phương pháp: Nạp theo yêu cầu • Nạp trang khi có lỗi trang Nạp trước • Nạp trước các trang theo các điều kiện xác định 51 d. Thay thế trang Khi các khung đã đầy mà cần nạp thêm trang thì phải thay thế một trang đang có trên khung • Nếu trang bị thay thế có thay đổi nội dung thì phải đưa ra đĩa Có các phương pháp chọn phần tử thay thế: Optimal, FIFO, LRU (thông dụng)  Least Recently Used (LRU): chọn trang không được truy xuất trong khoảng thời gian lớn nhất 52 3. Bộ nhớ ảo dạng phân đoạn Tổ chức phân đoạn Bộ nhớ ảo bao gồm các đoạn (segment) có kích thuớc không cố định Khi nạp đoạn vào bộ nhớ thì hệ điều hành tìm khoảng trống đủ để nạp đoạn Có bảng đoạn quản lý các đoạn 53 Nhận xét về phân trang, phân đoạn  Trang trong suốt đối với người lập trình  Phân trang tránh được phân mảnh bên ngoài Người lập trình sử dụng được đoạn  Phân đoạn phù hợp với lập trình theo khối, cấu trúc dữ liệu thay đổi, dùng chung và bảo vệ bộ nhớ 54 4. Bộ nhớ ảo dạng phân đoạn có phân trang Kết hợp các ưu điểm của phân đoạn và phân trang Tổ chức: Bộ nhớ ảo bao gồm các đoạn  Trong mỗi đoạn thực hiện phân trang 55 Ví dụ: bộ nhớ ảo trên Pentium Đơn vị quản lý bộ nhớ (Memory Management Unit, MMU) • Đơn vị phân đoạn, (đoạn đến 232 bytes) • Đơn vị phân trang Các mô hình bộ nhớ • Không phân đoạn, không phân trang • Không phân đoạn, có phân trang • Có phân đoạn, không phân trang • Có phân đoạn, có phân trang 56 Chuyển đổi địa chỉ Địa chỉ ảo dạng phân đoạn: • Selector – 16 bit • Offset – 32 bit Địa chỉ tuyến tính (linear address) Địa chỉ vật lý 57 Cấu trúc selector GDT (Global Descriptor Table): dùng cho HDH LDT (Local Descriptor Table): dùng cho các chương trình Privilege level: mức đặc quyền 58 Chuyển đổi địa chỉ đoạn  địa chỉ tuyến tính 59 Chuyển đổi địa chỉ tuyến tính  địa chỉ vật lý 60 Ứng dụng mức đặc quyền TỔ CHỨC MÁY TÍNH VÀ HỢP NGỮ Chương 5 TẬP LỆNH 2 Nội dung chương 5 I. Khái niệm về tập lệnh II. Các dạng dữ liệu III. Tập lệnh IV. Định vị địa chỉ V. Dòng điều khiển VI. Giới thiệu kỹ thuật lập trình hợp ngữ 3 I. Khái niệm về tập lệnh 1. Các hình thức của tập lệnh 2. Các chỉ tiêu thiết kế tập lệnh 4 1. Các hình thức của tập lệnh  Tập lệnh: tập hợp các lệnh của CPU  ngôn ngữ máy Có 2 hình thức: • Dạng nhị phân bit pattern • Dạng ký hiệu symbolic language assembly language 5 2. Các chỉ tiêu thiết kế tập lệnh Đầy đủ Hiệu quả Dễ nhớ, dễ sử dụng  Tương thích 6 II. Các dạng dữ liệu 1. Biểu diễn số nguyên 2. Biểu diễn số thực 3. Số dạng SIMD 4. Biểu diễn ký tự 7 1. Biểu diễn số nguyên  Số nguyên không dấu • Biểu diễn nhị phân  Số nguyên có dấu • Mã bù 2  Số BCD (Binary-Coded Decimal) Số thập phân mã hoá nhị phân 1 chữ số thập phân biểu diễn trên 4 bit 8 Khuôn dạng số BCD 9 2. Biểu diễn số thực Dùng tiêu chuẩn IEEE 754 X = S.2 E 10 Ví dụ 11 3. Số dạng SIMD  Sử dụng trên CPU IA-32 Nén các dữ liệu nguyên, số dấu chấm động trong dữ liệu 64 bit, 128 bit  Thực hiện xử lý dạng SIMD Single Instruction stream Multiple Data stream 12 Ví dụ dữ liệu SIMD 64 bit 13 Ví dụ dữ liệu SIMD 128 bit 14 4. Biểu diễn ký tự Dùng các bảng mã (coding schemes) ASCII – 7 bit, 8 bit, từ 1967 American Standard Code for Information Interchange Unicode – 16 bit, từ 1991 • Dạng dựng sẵn (pre-compound) • Dạng tổ hợp (compound) 15 Không gian mã Unicode 16 III. Tập lệnh 1. Các loại lệnh 2. Khuôn dạng lệnh 17 1. Các loại lệnh Các lệnh đa năng Phải có trên các tập lệnh Các lệnh đặc biệt Đặc tính riêng của từng CPU 18 Các loại lệnh đa năng Các lệnh di chuyển dữ liệu Thanh ghi, bộ nhớ, thiết bị I/O Các lệnh xử lý dữ liệu • Dạng 1 toán hạng: NOT, NEG, SHIFT, • Dạng 2 toán hạng: ADD, , AND, Điều khiển chương trình • Gọi thủ tục • Lặp, Rẽ nhánh Điều khiển hệ thống 19 Các loại lệnh đặc biệt trên IA-32 Các lệnh dạng SIMD • MMX • Streaming SIMD Extensions (SSE) SSE, SSE2, SSE3 • Prescott New Instructions (PNI) • 20 Các loại lệnh trên CPU Intel 21 Các loại lệnh trên CPU Intel (tt) 22 2. Khuôn dạng lệnh Mỗi lệnh có vùng mã lệnh (opcode) xác định thao tác thực hiện Mỗi lệnh có thể có các vùng địa chỉ (address/reference) xác định toán hạng của lệnh 23 Ví dụ Khuôn dạng lệnh đơn giản 24 Nhắc lại chu kỳ lệnh 25 Ví dụ: Khuôn dạng lệnh CPU Pentium 4 26 IV. Định vị địa chỉ 1. Khái niệm 2. Các dạng định vị địa chỉ cơ sở 27 1. Khái niệm Addressing – Định vị địa chỉ Xác định toán hạng của lệnh từ các vùng địa chỉ trên lệnh  Toán hạng có thể: • Hằng số • Dữ liệu trên thanh ghi, bộ nhớ, thiết bị I/O Có các dạng định vị địa chỉ phức tạp  phục vụ yêu cầu phần mềm 28 2. Các dạng định vị địa chỉ cơ sở a. Tức thời (Immediate) b. Trực tiếp (Direct) c. Gián tiếp (Indirect) d. Thanh ghi (Register) e. Gián tiếp thanh ghi (Register Indirect) f. Chỉ số (Indexed/Displacement) g. Stack 29 a. Định vị địa chỉ tức thời  Toán hạng ở trên lệnh, trong vùng địa chỉ Không cần truy xuất bộ nhớ để lấy toán hạng  Tốc độ nhanh Kích thước toán hạng bị giới hạn Operand Opcode Instruction 30 b. Định vị địa chỉ trực tiếp Vùng địa chỉ chứa địa chỉ toán hạng Cần truy xuất bộ nhớ thêm 1 lần để có toán hạng Không cần tính toán địa chỉ toán hạng Không gian địa chỉ bị giới hạn 31 Sơ đồ định vị địa chỉ trực tiếp Address A Opcode Instruction Memory Operand 32 c. Định vị địa chỉ gián tiếp Vùng địa chỉ chứa địa chỉ ô nhớ lưu địa chỉ toán hạng Cần truy xuất thêm bộ nhớ 2 lần: • Lần 1: có địa chỉ toán hạng (pointer) • Lần 2: có giá trị toán hạng Có thể gián tiếp nhiều cấp  Tốc độ chậm 33 Sơ đồ định vị địa chỉ gián tiếp Address A Opcode Instruction Memory Operand Pointer to operand 34 d. Định vị địa chỉ thanh ghi Vùng địa chỉ chứa tên thanh ghi lưu toán hạng Cần truy xuất thanh ghi để có toán hạng Vùng địa chỉ nhỏ • Lệnh ngắn hơn • Lấy lệnh nhanh hơn  Tốc độ nhanh  Số lượng thanh ghi giới hạn  Tương tự định vị địa chỉ trực tiếp 35 Sơ đồ định vị địa chỉ thanh ghi Register Address R Opcode Instruction Registers Operand 36 e. Định vị địa chỉ gián tiếp thanh ghi  Tương tự định vị địa chỉ gián tiếp Vùng địa chỉ chứa tên thanh ghi, giá trị thanh ghi là địa chỉ ô nhớ lưu toán hạng Cần truy xuất thanh ghi để có địa chỉ toán hạng và truy xuất bộ nhớ để có toán hạng 37 Sơ đồ định vị địa chỉ gián tiếp thanh ghi Register Address R Opcode Instruction Memory Operand Pointer to Operand Registers 38 f. Định vị địa chỉ chỉ số Vùng địa chỉ chứa 2 giá trị: • Hằng số D • Thanh ghi R  Địa chỉ toán hạng là (R) + D Dùng để truy xuất vùng nhớ liên tục dạng (Base + Displacement) 39 Sơ đồ định vị địa chỉ chỉ số Register R Opcode Instruction Memory Operand Pointer to Operand Registers Address A + 40 Các dạng tương tự, mở rộng của định vị địa chỉ chỉ số Base-register addressing Địa chỉ toán hạng: (B) + D B: base-register Base-Index addressing Địa chỉ toán hạng: (B + I) + D B: base-register I: index-register 41 f. Định vị địa chỉ trên stack  Toán hạng được hiểu ngầm tại vị trí đỉnh stack Có hai loại lệnh truy xuất đỉnh stack: • PUSH đưa dữ liệu vào đỉnh stack • POP lấy dữ liệu từ đỉnh stack 42 Ví dụ stack Đỉnh stack: Stack Pointer (SP) SP SP SP SP SP SP 43 V. Dòng điều khiển 1. Khái niệm dòng điều khiển 2. Các loại dòng điều khiển cơ bản 44 1. Khái niệm dòng điều khiển Dòng điều khiển: thứ tự thực hiện các lệnh trong chương trình  Thứ tự vật lý: thứ tự các lệnh trên bộ nhớ Đơn giản, dòng điều khiển trùng với thứ tự vật lý Các dòng điều khiển khác thứ tự vật lý: • Rẽ nhánh • Gọi thủ tục • Bẫy • Ngắt quãng 45 2. Các loại dòng điều khiển cơ bản a. Tuần tự b. Rẽ nhánh c. Thủ tục d. Bẫy e. Ngắt quãng 46 a. Tuần tự Dòng điều khiển tuần tự trùng với thứ tự vật lý  Lệnh tiếp theo ở ô nhớ tiếp theo 47 b. Rẽ nhánh Khi có lệnh rẽ nhánh (branch), dòng điều khiển khác với thứ tự vật lý Hai dạng rẽ nhánh: • Có điều kiện, ví dụ: dạng If-Else, vòng lặp • Không điều kiện, ví dụ: goto 48 c. Thủ tục  Thủ tục (procedure): kỹ thuật quan trọng nhất của lập trình cấu trúc Khi có lệnh gọi thủ tục (lệnh CALL) dòng điều khiển chuyển đến thủ tục Khi kết thúc thủ tục, dòng điều khiển trở về lệnh tiếp theo lệnh gọi thủ tục  Nếu coi lệnh gọi thủ tục và thủ tục là một lệnh thì dòng điều khiển là tuần tự 49 Mô hình gọi thủ tục 50 Các giai đoạn gọi thủ tục Có một vùng trên stack (stack frame) được tạo khi gọi thủ tục Các giai đoạn thực hiện khi gọi thủ tục: • Truyền tham số • Lưu địa chỉ trở về • Cấp phát bộ nhớ cho các biến địa phương Khi kết thúc thủ tục: • Xoá stack frame • Trở về lệnh tiếp theo lệnh gọi 51 Một số tính chất Các thủ tục có thể gọi lồng nhau Có thể có nhiều stack frame đồng thời Có thể có lỗi tràn stack (stack overflow) • Do có quá nhiều stack frame • Do biến địa phương, tham số quá lớn 52 Ví dụ stack frame 53 d. Bẫy Bẫy là lệnh gọi thủ tục tự động do chương trình đang thực hiện tạo ra vì các điều kiện xác định, thường là báo lỗi Ví dụ: bẫy do “chia cho 0” Khi có lệnh chia cho 0: • Chương trình đang thực hiện dừng lại • Dòng điều khiển chuyển đến chương trình xử lý bẫy (trap handler) • Thông báo lỗi “divide by zero” 54 Bẫy (tt) Bẫy do phần cứng phát hiện, hệ điều hành xử lý Một số điều kiện dùng tạo bẫy: • Chia cho 0 • Tràn stack • Tràn số nguyên, tràn số thực • Mã lệnh không xác định • Vi phạm cơ chế bảo vệ • 55 e. Ngắt quãng Ngắt quãng làm thay đổi dòng điều khiển không phải do chương trình đang thực hiện tạo ra, mà do một nguyên nhân khác thường liên quan đến xuất nhập Chương trình xử lý ngắt quãng: • Trên ROM BIOS • Thuộc hệ điều hành • Thuộc chương trình ứng dụng 56 Ví dụ: ngắt quãng bàn phím Khi có phím ấn: • Chương trình đang thực hiện dừng lại • Dòng điều khiển chuyển đến chương trình xử lý ngắt quãng bàn phím • Kết thúc chương trình xử lý ngắt quãng, dòng điều khiển trở về lệnh tiếp theo 57 Chuyển điều khiển khi có ngắt quãng 58 Chu kỳ lệnh với ngắt quãng TỔ CHỨC MÁY TÍNH VÀ HỢP NGỮ Chương 6 MỘT SỐ DẠNG KIẾN TRÚC MÁY TÍNH 2 Nội dung chương 6 I. Kiến trúc máy tính song song II. SMP (Symmetric MultiProcessor) 3 I. Kiến trúc máy tính song song 1. Khái niệm 2. Các mô hình kiến trúc song song 3. Giải thuật song song 4 1. Khái niệm Kiến trúc máy tính tuần tự (kiến trúc Von-Neumann) tiến đến giới hạn tốc độ Cần các kiến trúc song song SISD, SIMD, MISD, MIMD CPU Intel: • SIMD • Pipelining với branch prediction 5 Máy tính dạng SIMD và MIMD  SIMD • Vector computer MIMD  kiến trúc song song • MultiProcessor  Parallel Computer • Multicomputer  Distributed system 6 Phân loại kiến trúc máy tính song song 7 2. Các mô hình kiến trúc song song Các thành phần: Các bộ xử lý Các bộ nhớ Các thiết bị I/O Hệ thống kết nối 8 Các cấp kiến trúc máy tính song song (a) On-chip parallelism (b) Coprocessor (c) Multiprocessor (d) Multicomputer (e) Grid 9 Ví dụ: siêu phân luồng trên Pentium 4 10 NUMA multiprocessor Máy tính NUMA dựa trên hai cấp bus 11 Ví dụ: Multiprocessor a. Multiprocessor với 16 CPU dùng chung 1 bộ nhớ b. Một hình ảnh được chia thành 16 phần cho 16 CPU xử lý 12 Ví dụ: Multicomputer a. Multicomputer với 16 CPU, mỗi CPU có bộ nhớ riêng b. Một hình ảnh được chia thành 16 phần trên 16 bộ nhớ 13 Kiến trúc Cluster 14 Các sơ đồ kết nối tĩnh II 15 Kết nối động dùng switches 16 Bộ nhớ dùng chung (shared memory) 17 Bộ nhớ dùng chung (tt) 18 Distributed system 19 3. Giải thuật song song Được thiết kế qua 4 giai đoạn:  Phân chia  Truyền thông  Tích tụ Ánh xạ 20 II. SMP 1. Đặc điểm 2. Ví dụ 3. Hoạt động 21 1. Đặc điểm  Tăng hiệu suất máy vi tính dùng CPU Intel  Tương thích với máy AT • Hoạt động như máy 1 CPU với hệ điều hành 1 CPU Dùng cho các CPU Intel từ 80486 • CPU có hỗ trợ multiprocessor • Các CPU hoàn toàn tương đương • Cấu hình mặc định: 2 CPU, tối đa 16 CPU 22 Đặc điểm (tt) Các CPU dùng chung bộ nhớ: • Các CPU dùng chung một không gian địa chỉ • Chỉ có 1 bản hệ điều hành trên bộ nhớ • Chương trình có thể thực hiện trên mọi CPU Các CPU dùng chung hệ thống I/O • Hoạt động với các tiêu chuẩn bus ISA, PCI 23 2. Ví dụ 24 Ví dụ (tt) BSP Bootstrap Processor AP Application Processor APIC Advanced Programmable Interrupt Controller ICC Interrupt Controller Communication 25 BSP và AP BIOS chọn 1 CPU (BSP) để khởi động hệ điều hành Các CPU còn lại là AP, bị treo khi khởi động AP chỉ hoạt động khi hệ điều hành đã hoạt động • BSP hoạt động như AP 26 3. Hoạt động 27 MP BIOS Kiểm tra các thành phần hệ thống  Tạo các configuration tables dùng cho hệ điều hành Khởi động các processor Cung cấp các dịch vụ khi thực thi 28 Lập trình trên kiến trúc SMP Dạng shared everything Dùng thread Cần các thư viện hỗ trợ các biến mutex, semaphore • Loại trừ tương hỗ • Đồng bộ các thread 29 Ví dụ

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

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