Giáo trình Kiến trúc Máy tính - Bài 2: Cấu trúc bộ VXL - Vũ Mạnh Khánh

pdf 14 trang huongle 1900
Bạn đang xem tài liệu "Giáo trình Kiến trúc Máy tính - Bài 2: Cấu trúc bộ VXL - Vũ Mạnh Khánh", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_kien_truc_may_tinh_bai_2_cau_truc_bo_vxl_vu_manh.pdf

Nội dung text: Giáo trình Kiến trúc Máy tính - Bài 2: Cấu trúc bộ VXL - Vũ Mạnh Khánh

  1. Mục đích – Yêu cầu Cấu trúc bộ VXL Mục đích  Giới thiệu cấu trúc của bộ xử lý trung tâm: tổ chức, chức năng và nguyên lý hoạt động  Mô tả diễn tiến thi hành một lệnh mã máy Giáo viên: Vũ Mạnh Khánh  Một số kỹ thuật xử lý thông tin Yêu cầu  Nắm vững cấu trúc của bộ xử lý trung tâm  Diễn tiến thi hành một lệnh mã máy Cấu trúc bộ VXL ĐƯỜNG ĐI CỦA DỮ LIỆU Bộ xử lý được chia chủ yếu thành hai Bộ phận làm tính và luận lý (ALU: Arithmetic and Logic bộ phận Unit) Các mạch dịch, các thanh ghi và các đường nối kết  Phần điều khiển Thanh ghi đếm chương trình (PC: Program Counter) Thanh ghi trạng thái (SR: Status Register)  Phần đường đi của dữ liệu (data path) Thanh ghi đệm TEMP (Temporary) Thanh ghi địa chỉ bộ nhớ (MAR: Memory Address Register) Thanh ghi số liệu bộ nhớ (MBR: Memory Buffer Register) Bộ đa hợp (MUX: Multiplexor), đây là điểm cuối của các kênh dữ liệu - CPU và bộ nhớ, với nhiệm vụ lập thời biểu truy cập bộ nhớ từ CPU và các kênh dữ liệu Hệ thống bus nguồn (S1, S2) và bus kết quả (Dest). 1
  2. ĐƯỜNG ĐI CỦA DỮ LIỆU Nhiệm vụ:  Đọc các toán hạng từ các thanh ghi tổng quát  Thực hiện các phép tính trên toán hạng này trong bộ làm tính và luận lý ALU  Lưu trữ kết quả trong các thanh ghi tổng quát. BỘ ĐIỀU KHIỂN Bộ điều khiển mạch điện tử Nhiệm vụ: Sử dụng mô hình automate trạng thái  Tạo các tín hiệu điều khiển di chuyển số liệu (tín hiệu di chuyển số liệu từ các thanh ghi đến bus hữu hạn hoặc tín hiệu viết vào các thanh ghi)  Điều khiển các tác vụ mà các bộ phận chức năng mỗi thời điểm xem xét đều có một phải làm (điều khiển ALU, điều khiển đọc và viết trạng thái (state) vào bộ nhớ trong ).  Bộ điều khiển cũng tạo các tín hiệu giúp các lệnh được thực hiện một cách tuần tự. Cài đặt bộ điều khiển có thể dùng một trong hai cách sau:  dùng mạch điện tử  dùng vi chương trình (microprogram). 2
  3. C¸ch thøc ho¹t ®éng Các đường điều khiển của phần đường đi số liệu là các ngã ra của một hoặc nhiều Automate trạng thái hữu hạn. Các ngã vào của Automate gồm có thanh ghi lệnh, thanh ghi này chứa lệnh phải thi hành và những thông tin từ bộ đường đi số liệu. Ứng với cấu hình các đường vào và trạng thái hiện tại, Automate sẽ cho trạng thái tương lai và các đường ra tương ứng với trạng thái hiện tại. Automate được cài đặt dưới dạng là một hay nhiều mạch mảng logic lập trình được (PLA: Programmable Logic Array) hoặc các mạch logic ngẫu nhiên. Bộ điều khiển vi chương trình C¸ch thøc ho¹t ®éng Các đường dây điều khiển của bộ đường đi dữ liệu ứng với các ngã ra của một vi lệnh nằm trong bộ nhớ vi chương trình. Việc điều khiển các tác vụ của một lệnh mã máy được thực hiện bằng một chuỗi các vi lệnh. Một vi máy tính nằm bên trong bộ điều khiển thực hiện từng lệnh của vi chương trình này. Các tác vụ của lệnh mã máy cũng tuỳ thuộc vào trạng thái của phần đường đi dữ liệu. 3
  4. DIỄN TIẾN THI HÀNH LỆNH MÃ MÁY Đọc lệnh Việc thi hành một lệnh mã máy có thể chia MAR ← PC thành 5 giai đoạn: IR ← M[MAR]  Đọc lệnh (IF: Instruction Fetch)  Giải mã lệnh (ID: Instruction Decode)  Bộ đếm chương trình PC được đưa vào  Thi hành lệnh (EX: Execute) MAR . Lệnh được đọc từ bộ nhớ trong, tại  Thâm nhập bộ nhớ trong hoặc nhảy (MEM: các ô nhớ có địa chỉ nằm trong MAR và Memory access) được đưa vào thanh ghi lệnh IR.  Lưu trữ kết quả (RS: Result Storing). Mỗi giai đoạn được thi hành trong một hoặc nhiều chu kỳ xung nhịp Giải mã lệnh và đọc các thanh Giải mã lệnh và đọc các thanh ghi nguồn ghi nguồn A ← Rs1 B ← Rs2 PC ← PC + 4 1.Các thanh ghi nguồn Rs1 và Rs2 được sử  Lệnh được giải mã. Kế đó các thanh ghi dụng tuỳ theo tác vụ, kết quả được đặt trong thanh ghi đích Rd. Rs1 và Rs2 được đưa vào A và B. Thanh 2.Ta thấy việc giải mã được thực hiện cùng lúc ghi PC được tăng lên để chỉ tới lệnh kế với việc đọc các thanh ghi Rs1 và Rs2 vì các đó. thanh ghi này luôn nằm tại cùng vị trí ở trong lệnh 4
  5. Thi hành lệnh Thi hành lệnh Tuỳ theo loại lệnh mà một trong ba  Một lệnh của ALU Ngã ra ALU ← Kết quả của phép tính nhiệm vụ sau đây được thực hiện: ALU thực hiện phép tính xác định trong mã  Liên hệ tới bộ nhớ lệnh, đưa kết quả ra ngã ra. MAR ← Địa chỉ do ALU tính tuỳ theo kiểu  Một phép nhảy định vị (Rs2). Ngã ra ALU ← Địa chỉ lệnh tiếp theo do ALU tính. MBR ← Rs1 ALU cộng địa chỉ của PC với độ dời để làm thành Địa chỉ hiệu dụng do ALU tính được đưa vào địa chỉ đích và đưa địa chỉ này ra ngã ra. Nếu là MAR và thanh ghi nguồn Rs1 được đưa vào một phép nhảy có điều kiện thì thanh ghi trạng thái được đọc quyết định có cộng độ dời vào PC MBR để được lưu vào bộ nhớ trong. hay không. Thâm nhập bộ nhớ trong hoặc nhảy lần cuối Lưu trữ kết quả Giai đoạn này thường chỉ được dùng cho Rd ← Ngã ra ALU hoặc Rd ← MBR các lệnh nạp dữ liệu, lưu giữ dữ liệu và lệnh nhảy. Lưu trữ kết quả trong thanh ghi đích.  Tham khảo đến bộ nhớ: MBR ← M[MAR] hoặc M[MAR] ← MBR Số liệu được nạp vào MBR hoặc lưu vào địa chỉ mà MAR trỏ đến.  Nhảy: If (điều kiện), PC ← ngã ra ALU Nếu điều kiện đúng, ngã ra ALU được nạp vào PC. Đối với lệnh nhảy không điều kiện, ngả ra ALU luôn được nạp vào thanh ghi PC. 5
  6. NGẮT QUÃNG (INTERRUPT) NGẮT QUÃNG (INTERRUPT) Ngắt quãng là một sự kiện xảy ra một Bộ điều khiển của CPU là bộ phận khó cách ngẫu nhiên trong máy tính và thực hiện nhất và ngắt quãng là phần làm ngưng tính tuần tự của chương khó thực hiện nhất trong bộ điều trình khiển. Để nhận biết được một ngắt quãng Một số tên gọi khác: Ngoại lệ, lỗi, bẫy lúc đang thi hành một lệnh, ta phải biết điều chỉnh chu kỳ xung nhịp và điều này có thể ảnh hưởng đến hiệu quả của máy tính. NGẮT QUÃNG (INTERRUPT) NGẮT QUÃNG (INTERRUPT) Ứng dụng của ngắt Ứng dụng của ngắt Ngày nay:  Trước đây:nhận biết các sai sót trong  Ngoại vi đòi hỏi nhập hoặc xuất số liệu. tính toán số học, và ứng dụng cho những  Người lập trình muốn dùng dịch vụ của hệ điều hành. hiện tượng thời gian thực  Cho một chương trình chạy từng lệnh.  Làm điểm dừng của một chương trình.  Báo tràn số liệu trong tính toán số học.  Trang bộ nhớ thực sự không có trong bộ nhớ.  Báo vi phạm vùng cấm của bộ nhớ.  Báo dùng một lệnh không có trong tập lệnh.  Báo phần cứng máy tính bị hư.  Báo điện bị cắt. 6
  7. NGẮT QUÃNG (INTERRUPT) NGẮT QUÃNG (INTERRUPT) Chú ý: Quy trình thi hành ngắt  Ngắt quãng không xảy ra thường xuyên  1. Thực hiện xong lệnh đang làm. nhưng bộ xử lý phải được thiết kế sao  2. Lưu trữ trạng thái hiện tại. cho có thể lưu giữ trạng thái của nó  3. Nhảy đến chương trình phục vụ ngắt trước khi nhảy đi phục vụ ngắt quãng. Sau khi thực hiện xong chương trình  4. Khi chương trình phục vụ chấm dứt, phục vụ ngắt, bộ xử lý phải khôi phục bộ xử lý khôi phục lại trạng thái cũ của trạng thái của nó để có thể tiếp tục công nó và tiếp tục thực hiện chương trình mà việc. nó đang thực hiện khi bị ngắt. KỸ THUẬT ỐNG DẪN (PIPELINE) KỸ THUẬT ỐNG DẪN (PIPELINE) Đây là một kỹ thuật làm cho các giai Ví dụ đoạn khác nhau của nhiều lệnh được  Chúng ta có những lệnh đều đặn, mỗi lệnh được thực hiện trong cùng một khoản thời gian. thi hành cùng một lúc  Mỗi lệnh được thực hiện trong 5 giai đoạn và mỗi giai đoạn được thực hiện trong 1 chu kỳ xung nhịp.  Các giai đoạn thực hiện một lệnh là: lấy lệnh (IF: Instruction Fetch), giải mã (ID: Instruction Decode), thi hành (EX: Execute), thâm nhập bộ nhớ (MEM: Memory Access), lưu trữ kết quả (RS: Result Storing). 7
  8. KỸ THUẬT ỐNG DẪN (PIPELINE) KỸ THUẬT ỐNG DẪN (PIPELINE) So sánh với kiểu thông thường  5 lệnh được thực hiện trong 25 chu kỳ xung nhịp,  xử lý lệnh theo kỹ thuật ống dẫn thực hiện 5 lậnh chỉ trong 9 chu kỳ xung nhịp. KỸ THUẬT ỐNG DẪN (PIPELINE) KỸ THUẬT ỐNG DẪN (PIPELINE) Các ràng buộc: Các ràng buộc:  Cần phải có một mạch điện để thi hành mỗi giai  Cần phải có các bộ làm tính ALU hữu hiệu để có đoạn của lệnh vì tất cả các giai đoạn của lệnh thể thi hành lệnh số học dài nhất, có số giữ, được thi hành cùng lúc trong một khoảng thời gian ít hơn một chu kỳ  Phải có nhiều thanh ghi khác nhau dùng cho các của xung nhịp. tác vụ đọc và viết.  Cần phải có nhiều thanh ghi lệnh để lưu giữ lệnh  Trong một máy có kỹ thuật ống dẫn, có khi kết mà chúng ta phải xem xét cho mỗi giai đoạn thi quả của một tác vụ trước đó, là toán hạng nguồn của một tác vụ khác. hành lệnh.  Cần phải giải mã các lệnh một cách đơn giản để  Cuối cùng phải có nhiều thanh ghi bộ đếm có thể giải mã và đọc các toán hạng trong một chương trình PC để có thể tái tục các lệnh trong chu kỳ duy nhất của xung nhịp. trường hợp có ngắt quãng. 8
  9. CÁC VẤN ĐỀ TRONG KỸ THUẬT ỐNG DẪN CÁC VẤN ĐỀ TRONG KỸ THUẬT ỐNG DẪN Khó khăn do cấu trúc Khó khăn do số liệu  Đây là khó khăn do thiếu bộ phận chức Ví dụ năng, ví dụ trong một máy tính dùng kỹ  Lệnh 1: ADD R1, R2, R3 thuật ống dẫn phải có nhiều ALU, nhiều  Lệnh 2: SUB R4, R1, R5 PC, nhiều thanh ghi lệnh IR  Lệnh 3: AND R6, R1, R7 Cách giải quyết:  Lệnh 4: OR R8, R1, R9  Thêm các bộ phận chức năng cần thiết và hữu hiệu CÁC VẤN ĐỀ TRONG KỸ THUẬT ỐNG DẪN CÁC VẤN ĐỀ TRONG KỸ THUẬT ỐNG DẪN Cách khắc phục R1, kết quả của lệnh 1 chỉ có thể được dùng cho lệnh 2 sau giai đoạn MEM của lệnh 1, nhưng R1 được dùng cho lệnh 2 vào giai đoạn EX của lệnh 1. Chúng ta cũng thấy R1 được dùng cho các lệnh 3 và 4. 9
  10. CÁC VẤN ĐỀ TRONG KỸ THUẬT ỐNG DẪN SIÊU ỐNG DẪN Khó khăn do điều khiển Máy tính có kỹ thuật siêu ống dẫn bậc  Các lệnh làm thay đổi tính thi hành các lệnh một cách tuần tự (nghĩa là PC tăng đều đặn sau mỗi n bằng cách chia các giai đoạn của kỹ lệnh), gây khó khăn về điều khiển. thuật ống dẫn đơn giản, mỗi giai Cách giải quyết đoạn được thực hiện trong khoản thời  Cách thứ nhất là đóng băng kỹ thuật ống dẫn gian Tc, thành n giai đoạn con thực trong một chu kỳ, nghĩa là ngưng thi hành lệnh thứ i+1 đang làm nếu lệnh thư i là lệnh nhảy. Ta hiện trong khoản thời gian Tc/n. mất trắng một chu kỳ cho mỗi lệnh nhảy.  Cách thứ hai là thi hành lệnh sau lệnh nhảy nhưng lưu ý rằng hiệu quả của một lệnh nhảy bị chậm mất một lệnh. SIÊU ỐNG DẪN SIÊU VÔ HƯỚNG (SUPERSCALAR) Máy tính siêu vô hướng bậc n có thể thực hiện đồng thời n lệnh trong một chu kỳ xung nhịp Tc. 10
  11. MÁY TÍNH CÓ LỆNH THẬT DÀI VLIW SIÊU VÔ HƯỚNG (SUPERSCALAR) (VERY LONG INSTRUCTION WORD) Máy tính siêu vô hướng có thể thực hiện 2 hoặc 3 lệnh trong mỗi chu kỳ xung nhịp. Do kỹ thuật ống dẫn đòi hỏi các lệnh phải phụ thuộc vào nhau nên rất khó thực hiện nhiều lệnh trong một chu kỳ Như vậy, thay vì cố thực hiện nhiều lệnh trong một chu kỳ, người ta tìm cách đưa vào nhiều lệnh trong một từ lệnh dài. MÁY TÍNH VECTƠ MÁY TÍNH SONG SONG Một máy tính vectơ bao gồm một bộ tính Trong các máy tính siêu ống dẫn, siêu vô toán vô hướng bình thường dùng kỹ thuật hướng, máy tính vectơ, máy tính VLIW, ống dẫn và một bộ làm tính vectơ. Bộ tính người ta đã dùng tính thực hiện song song toán vô hướng, giống như bộ xử lý dùng kỹ các lệnh ở các mức độ khác nhau để làm thuật ống dẫn, thực hiện các phép tính vô tăng hiệu quả của chúng. hướng, còn bộ làm tính vectơ thực hiện các phép tính vectơ. Với sự phát triển của công nghệ máy tính Có 2 kiểu kiến trúc máy tính vectơ khiến người ta nghĩ tới giải pháp song song  kiểu vectơ ô nhớ - ô nhớ :các phép tính vectơ theo đó người ta tăng cường hiệu quả của được thực hiện trong bộ nhớ. máy tính bằng cách tăng số lượng bộ xử lý.  kiểu thanh ghi vectơ. 11
  12. MÁY TÍNH SONG SONG MÁY TÍNH SONG SONG Các máy tính có thể sắp xếp vào 4 loại sau: Các máy MIMD hiện tại có thể được  SISD (Single Instructions Stream, Single Data Stream): Máy tính một dòng lệnh, một dòng số liệu. xếp vào ba loại hệ thống sẽ được giới  SIMD (Single Instructions Stream, Multiple Data thiệu trong phần tiếp theo của Stream): Máy tính một dòng lệnh, nhiều dòng số liệu.  MISD (Multiple Instructions Stream, Single Data chương trình là: Stream):Máy tính nhiều dòng lệnh, một dòng số liệu.  SMP (Symmetric Multiprocesors)  MIMD (Multiple Instruction Stream, Multiple Data Stream): Máy tính nhiều dòng lệnh, nhiều dòng số  Cluster liệu. Các máy tính SISD tương ứng với các máy một bộ xử lý  NUMA (Nonunifrom Memory Access) mà chúng ta đã nghiên cứu. Các máy MISD kiểu máy tính này không sản xuất thương mại. MÁY TÍNH SONG SONG MÁY TÍNH SONG SONG Một hệ thống SMP bao gồm nhiều bộ xử lý Trong hệ thống cluster, các máy tính giống nhau được lắp đặt bên trong một độc lập được kết nối với nhau thông máy tính, các bộ xử lý này kết nối với nhau bởi một hệ thống bus bên trong hay một qua một hệ thống kết nối tốc độ cao vài sự sắp xếp chuyển mạch thích hợp. (mạng tốc độ cao Fast Ethernet hay Vấn đề lớn nhất trong hệ thống SMP là sự Gigabit) và hoạt động như một máy kết hợp các hệ thống cache riêng lẻ. Vì mỗi tính thống nhất. bộ xử lý trong SMP có một cache riêng của nó, do đó, một khối dữ liệu trong bộ nhớ trong có thể tồn tại trong một hay nhiều cache khác nhau. 12
  13. MÁY TÍNH SONG SONG MÁY TÍNH SONG SONG Ưu điểm của hệ thống Cluster Một hệ thống NUMA (Nonunifrom  Tốc độ cao: Có thể tạo ra một hệ thống cluster có khả năng xử lý mạnh hơn bất cứ một máy tính đơn lẻ Memory Access) là hệ thống đa xử lý nào. Mỗi cluster có thể bao gồm hàng tá máy tính, mỗi máy có nhiều bộ xử lý. được giới thiệu trong thời gian gần  Khả năng mở rộng cao: có thể nâng cấp, mở rộng đây, đây là hệ thống với bộ nhớ chia một cluster đã được cấu hình và hoạt động ổn định.  Độ tin cậy cao: Hệ thống vẫn hoạt động ổn định khi sẻ, thời gian truy cập các vùng nhớ có một nút (node) trong hệ thống bị hư hỏng. Trong dành riêng cho các bộ xử lý thì khác nhiều hệ thống, khả năng chịu lỗi (fault tolerance) được xử lý tự động bằng phần mềm. nhau.  Chi phí đầu tư thấp: hệ thống cluster có khả năng mạnh hơn một máy tính đơn lẻ mạnh nhất với chi phí thấp hơn. MÁY TÍNH SONG SONG MÁY TÍNH SONG SONG Thuận lợi: Bất lợi:  Thực hiện hiệu quả hơn so với hệ thống SMP trong các xử lý song song.  Hệ thống hoạt động không trong suốt  Không thay đổi phần mềm chính. như SMP: việc cấp phát các trang, các  Bộ nhớ có khả năng bị nghẽn nếu có nhiều truy cập đồng thời, nhưng điều này có thể được khắc quá trình có thể được thay đổi bởi các phục bằng cách: phần mềm hệ thống nếu cần.  Cache L1&L2 được thiết kế để giảm tối thiểu tất cả các thâm nhập bộ nhớ.  Hệ thống phức tạp.  Cần các phần mềm cục bộ được quản lý tốt để việc các ứng dụng hoạt động hiệu quả.  Quản trị bộ nhớ ảo sẽ chuyển các trang tới các nút cần dùng. 13
  14. MÁY TÍNH SONG SONG MÁY TÍNH SONG SONG 14