sổ tay cdt chuong 42-vxl

15
42 Kiến trúc Daniel A. Connors University of Coloradoa t Boulder Wen-mei W. Hwu Univer si ty of Il linois at Urba na - Champaign 42.1 Gii thiu............................................................ 1 42.2 Các loi vi x.................................................. 1 42.3 Các bphn chính ca vi x.........................2 42.4 Tp cu trúc l nh..............................................10 42.5 Mc lnh song song..........................................11 42.6 Nhng xu hướng trong công nghip ................ 14 42.1 Gi i th i u  Ngành công nghip vi xđược chia thành ngành công nghip máy tính và ngành công nghip sn xut linh kin máy tính. Cmáy tính và mch vi xđều nm trong thiết kế máy tính, cu trúc bchdn tchc và phn cng. Thut ng“cu trúc máy tính” được sdng để mô tcác khía cnh cơ bn này, và trc tiếp hơn là nói đến các bphn phn cng trong mt hthng máy tính, dòng dliu và thông tin điu khin gia chúng. Chương này smô tcác dng khác nhau ca bvi xlý, các cơ cu cu trúc cơ bn liên quan đến svn hành ca tt ccác bvi xlý và bàn vxu hướng phát trin ca ngành công nghip vi xlý. 42.2 Các lo i vi xBvi xlý máy tính được thiết kế cho người sdng như là mt đơn vxlý trung tâm (CPU) ca hthng máy tính ví dnhư là: máy tính cá nhân, trm làm vic, máy chvà các siêu máy tính. T uy vy, ban đầu bvi xlý ging như mt bđiu khin có thlp trình được vào nhng thp niên 1970, gn như tt ccác hthng máy tính được chế to vào nhng thp niên 1990 đều sdng bvi xlý như là mt đơn vtrung tâm xlý ca chúng. Mt cu nh hưởng ln đến bvi xlý ca máy tính ngày nay là cu trúc Intel 32-bit được biết đến như là IA-32 hoc X86. Các cu t rúc high-profile khác trong lĩnh vc vi xlý máy tính bao gm Compaq-Digital Alpha, HP PA-RISC, Sun Microsystems SPARC, IBM/Motorola PowerPC, và MIPS. Nhu cu sdng bvi xlý nhúng càng được tăng lên do nhu cu ca người dùng và các sn phm vin thông nhm đáp ng nhng đòi hi ca cht lượng và chc năng. Các dang sn phm chính yêu cu bvi xlý nhúng bao gm tivi kthut s, camera kthut s, công tc mng, modem tc độ cao, đin thoi cm tay kthut s, video game, máy in laser, và ô tô. Trong tương lai sci tiến trong vn đề tiêu thnăng lượng, giá thành sn xut, và sthc thi có thmang đến khnăng ng dng khác ví dnhư là máy trthính. Có nhiu smong đợi rng bvi xlý nhúng có thlà mt biu mu phát trin nhanh nht ca ngành công nghi p bán dn trong thp niên ti. Bvi xnhúng có thchia thành bxDSP và CPU nhúng tùy thuc vào vn đề lch s. Bxlý DSP có thchế to và to ra như là mt thiết bcó ý nghĩa đặc bit, nó phn ln đã được lp trình bng tay để thc hin xlý tính toán các tín hiu s. Mi quan tâm gn đây trong vic to ra DSP là sdng trình biên dch để làm gim bt nhu cu đối vi vic mã hóa bng tay trong vic phát trin DSP. Mt mi quan tâm gn đây khác trong vic to ra DSP đó là hòa nhp mt lõi DSP vi các ng dng logic đặc bit hướng đến mt dng gii pháp chip đơn l. Để thto được mi quan tâm này bng các h to ra mt cách nhanh chóng mt độ chíp công ngh. Li ích chính là làm gim bt giá thành ca hthng và khnăng tiêu hao năng lượng. Ngày này, có hai dng lõi DSP tng quát sn để phát trin ng dng. Lõi DSP Foundry-captive và các ng dng logic có liên quan phc vthiết kế được cung cp bi các hãng bán buôn cht bán dn như là Texas Instruments, Lucent Technologies, và SGS-Thompson phát trin ng dng, hđã cam kết vi tuyến chế to ca h. Phn ln scam kết đó là thường xuyên yêu cu sdng dch vthiết kế. Các công ty cnhõ hoc trung bình thường cung cp lõi DSP được cp phép sn xut cho các nhà phát trin ng dng, nhng ngư i mun có quyn la chn gia các kênh (nhà sn xut ) khác nhau. Có mt vài lý do khiến nhu cu vmáy tính nhúng khác vi nhu cu vcác hthng chung chung trước kia Nhu cu sdng bvi xlý nhúng và phn mn thc hin bràng buc nghiêm ngt bi cmã, khi lượng và khnăng tiêu thnăng lượng. Cũng như nhng ràng buc trong yêu cu vthi gian thc cũng thường cân nhc trong nhiu hthng nhúng.Hơn na, giá thành cũng là mt ràng buc trong bvi xlý nhúng. CPU nhúng được sdng trong các sn phm nơi mà vic tính toán phc tp tương tnhư các ng dng đa năng tng quát và quá trình hot động ca hthng . CPU nhúng được ly tcác vi xmáy tính đã li thi. Chún g thường xuyên tái s1

Upload: nguyen-ngoc-anh

Post on 07-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 1/15

42Kiến trúc

Daniel A. ConnorsUniversity of Coloradoat Boulder 

Wen-mei W. Hwu

University of Illinois at Urbana-Champaign

42.1 Giới thiệu ........................................................... .1

42.2 Các loại vi xử lý ..................................................1

42.3 Các bộ phận chính của vi xử lý .........................2

42.4 Tập cấu trúc lệnh ................................... ........ ...10

42.5 Mức lệnh song song ..........................................11

42.6 Những xu hướng trong công nghiệp ................14

42.1 Giới thiệu

 Ngành công nghiệp vi xử lý được chia thành ngành công nghiệp máy tính và ngành công nghiệp sản xuất linh kiện máytính. Cả máy tính và mạch vi xử lý đều nằm trong thiết kế máy tính, cấu trúc bộ chỉ dẫn tổ chức và phần cứng. Thuật ngữ“cấu trúc máy tính” được sử dụng để mô tả các khía cạnh cơ bản này, và trực tiếp hơn là nói đến các bộ phận phần cứng trongmột hệ thống máy tính, dòng dữ liệu và thông tin điều khiển giữa chúng. Chương này sẽ mô tả các dạng khác nhau của bộ vixử lý, các cơ cấu cấu trúc cơ bản liên quan đến sự vận hành của tất cả các bộ vi xử lý và bàn về xu hướng phát triển củangành công nghiệp vi xử lý.

42.2 Các loại vi xử lýBộ vi xử lý máy tính được thiết kế cho người sử dụng như là một đơn vị xử lý trung tâm (CPU) của hệ thống máy tính ví

dụ như là: máy tính cá nhân, trạm làm việc, máy chủ và các siêu máy tính. Tuy vậy, ban đầu bộ vi xử lý giống như là một bộđiều khiển có thể lập trình được vào những thập niên 1970, gần như tất cả các hệ thống máy tính được chế tạo vào những thậpniên 1990 đều sử dụng bộ vi xử lý như là một đơn vị trung tâm xử lý của chúng. Một cấu ảnh hưởng lớn đến bộ vi xử lý củamáy tính ngày nay là cấu trúc Intel 32-bit được biết đến như là IA-32 hoặc X86. Các cấu trúc high-profile khác trong lĩnh vựcvi xử lý máy tính bao gồm Compaq-Digital Alpha, HP PA-RISC, Sun Microsystems SPARC, IBM/Motorola PowerPC, vàMIPS. Nhu cầu sử dụng bộ vi xử lý nhúng càng được tăng lên do nhu cầu của người dùng và các sản phẩm viễn thông nhằmđáp ứng những đòi hỏi của chất lượng và chức năng. Các dang sản phẩm chính yêu cầu bộ vi xử lý nhúng bao gồm tivi kỹthuật số, camera kỹ thuật số, công tắc mạng, modem tốc độ cao, điện thoại cầm tay kỹ thuật số, video game, máy in laser, vàô tô. Trong tương lai sự cải tiến trong vấn đề tiêu thụ năng lượng, giá thành sản xuất, và sự thực thi có thể mang đến khả năngứng dụng khác ví dụ như là máy trợ thính. Có nhiều sự mong đợi rằng bộ vi xử lý nhúng có thể là một biểu mẫu phát triển

nhanh nhất của ngành công nghiệp bán dẫn trong thập niên tới. Bộ vi xử lý nhúng có thể chia thành bộ xử lý DSP và CPUnhúng tùy thuộc vào vấn đề lịch sử. Bộ xử lý DSP có thể chế tạo và tạo ra như là một thiết bị có ý nghĩa đặc biệt, nó phầnlớn đã được lập trình bằng tay để thực hiện xử lý tính toán các tín hiệu số. Mối quan tâm gần đây trong việc tạo ra DSP là sửdụng trình biên dịch để làm giảm bớt nhu cầu đối với việc mã hóa bằng tay trong việc phát triển DSP. Một mối quan tâm gầnđây khác trong việc tạo ra DSP đó là hòa nhập một lõi DSP với các ứng dụng logic đặc biệt hướng đến một dạng giải phápchip đơn lẻ. Để có thể tạo được mối quan tâm này bằng cách tạo ra một cách nhanh chóng mật độ chíp công nghệ. Lợi íchchính là làm giảm bớt giá thành của hệ thống và khả năng tiêu hao năng lượng. Ngày này, có hai dạng lõi DSP tổng quát sẵncó để phát triển ứng dụng. Lõi DSP Foundry-captive và các ứng dụng logic có liên quan phục vụ thiết kế được cung cấp bởicác hãng bán buôn chất bán dẫn như là Texas Instruments, Lucent Technologies, và SGS-Thompson phát triển ứng dụng, họđã cam kết với tuyến chế tạo của họ. Phần lớn sự cam kết đó là thường xuyên yêu cầu sử dụng dịch vụ thiết kế. Các công tycỡ nhõ hoặc trung bình thường cung cấp lõi DSP được cấp phép sản xuất cho các nhà phát triển ứng dụng, những ngườimuốn có quyền lựa chọn giữa các kênh (nhà sản xuất ) khác nhau. Có một vài lý do khiến nhu cầu về máy tính nhúng khácvới nhu cầu về các hệ thống chung chung trước kia Nhu cầu sử dụng bộ vi xử lý nhúng và phần mền thực hiện bị ràng buộc

nghiêm ngặt bởi cỡ mã, khối lượng và khả năng tiêu thụ năng lượng. Cũng như những ràng buộc trong yêu cầu về thời gianthực cũng thường cân nhắc trong nhiều hệ thống nhúng.Hơn nữa, giá thành cũng là một ràng buộc trong bộ vi xử lý nhúng.CPU nhúng được sử dụng trong các sản phẩm nơi mà việc tính toán phức tạp tương tự như các ứng dụng đa năng tổng quátvà quá trình hoạt động của hệ thống. CPU nhúng được lấy từ các vi xử lý máy tính đã lỗi thời. Chúng thường xuyên tái sử

1

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 2/15

Sổ tay Cơ điện tử 

dụng trình biên dịch và các phần mềm liên quan để hỗ trợ cho việc phát triển các dòng máy tính khác. Phục hồi thiết kế vi xửlý và phần mềm biên dịch làm tối thiểu hóa giá thành của công việc. Một xu hướng trong lĩnh vực CPU nhúng là tương tự vớilĩnh vực DSP: cung cấp lõi CPU nhúng và thiết kế ứng dụng logic đặc biệt cho một dạng giải phát chip đơn lẻ. Ví dụ, MPIsửa đổi có một lõi CPU nhúng để sử dụng trong Nintendo64, để bù đắp cho các chi phí liên quan đến kỹ thuật và chi phí bảnquyền. ARM, NEC, và Hitachi yêu cầu các dịch vụ và sản phẩm tương tự. Do nhu cau thực hiện tính toán DSP trong các sản phẩm tiêu dùng và sản phẩm viễn thông ngày càng gia tăng, nên số lượng CPUs nhúng cũng ngày càng tăng lên nhằm đảm bảo việc tính toán DSP hiệu quả hơn. Trái lại với những ràng buộc khác nhau và thị trường, cả máy tính và bộ vi xử lý nhúngchia sẻ các yếu tố truyền thống của cấu trúc máy tính. Những yếu tố chính sẽ được miêu tả. Ngoài ra, hơn một thập kỷ qua,các nghiên cứu lớn đã tập trung vào thiết kế bộ vi xử lý nhúng song song trong các mức lệnh, cũng như là tối ưu hóa trình biên dịch linh hoạt và kỹ thuật phân tích cho khai thác các cơ hội đó. Những nỗ lực này đã được công nhận cũng với sự pháttriển của máy tính dùng cho những mục đích chung chung được xây dựng dựa trên những công nghệ này. Tuy nhiên, nhu cầugia tăng về những hệ thống tính toán nhúng có tinh năng cao đã và đang tạo ra những cơ hội mới để thúc đẩy việc ứng dụngnhững công nghệ này trong những miền ứng dụng đặc biệt. Nghiên cứu ILP (Instruction-Level Parallelism ) đã giúp pháttriển một phương pháp luận mới gọi là EPIC (Explicitly Parallel Instruction Computing). Nhìn chung, những kỹ thuật này thểhiện những thay đổi căn bản lớn trong cấu trúc máy tính.

42.3 Các bộ phận chính của vi xử lý

Phần cứng chính của bộ vi xử lý được chia thành các phần theo chức năng của chúng. Cách chia phổ biến nhất là chia mộthệ thống thành 4 hệ thống con: Bộ xử lý trung tâm, bộ nhớ hệ thống con, hệ thống con đầu vào ra (I/O) và sự liên kết hệ

thống. Hình 42.1 chỉ ra sự kết nối giữa các hệ thống con này. Các thành phần chính và đặc tính của những hệ thống con nàyđược miêu tả.

Trung tâm xử lý

Hệ thống xử lý trung tâm của một bộ vi xử lý hiện đại thường được chia thành phần điều khiển, đường dẫn dữ liệu, đườngống, và các nhánh.

Hình 42.1 Cấu trúc các hệ thống con của một hệ thống máy tính

Đơn vị điều khiển

Đơn vị điều khiển của một bộ vi xử lý tạo ra các tín hiệu điều khiển tới sự sắp đặt các hoạt động trong đường dữ liệu. Có

hai loại đường kết nối chính giữa đơn vị điều khiển và đường dữ liệu : Các đường điều khiển và các đường trạng thái. Cácđường điều khiển truyền tín hiệu điều khiển từ đơn vị điều khiển tới đường dữ liệu. Các giá trị tín hiệu khác nhautrên đườngnày tạo ra các hoạt động khác nhau trong đường dữ liệu. Đường trạng thái mang các trạng thái thực hiện từ đường dữ liệu tớiđơn vị điều khiển. Những đường này cần được kiểm tra các trạng thái liên quan đến các thanh ghi trong đường dữ liệu để tạora các quyết định điều khiển tương lai. Chú ý rằng được thực hiện trong đơn vị điều khiển nhưng các thanh ghi là ở trongđường dữ liệu. Do đó, các điều kiện để ý đến giá trị thanh ghi được thông báo trong đường dữ liệu và sau đó được dịch tớiđơn vị điều khiển để cho việc tạo các quyết định. Một đơn vị điều khiển có thể được thực hiện với các mạch cứng, vi lập trìnhhoặc sự liên kết cả hai. Trong thiết kế mạch cứng, mỗi đơn vị điều khiển được xem như một chuỗi các mạch. Mục đích thiếtkế là để tối thiểu hoá các thành phần và để tối đa hoá tốc độ hoạt động. Trạng thái xác định của máy được xác nhận bởi cácthanh ghi, lôgic và các dây. Khi kết cấu đã được thực hiện, thì sự thiết kế chỉ có thể được thay đổi bằng cách đi dây lại đơn vị.Do đó, điều này làm cho các mạch được gọi là đơn vị điều khiển mạch cứng. Để việc thiết kế được tối ưu các mạch thườngđược đưa ra cấu trúc nhỏ. Sự thiếu cấu trúc làm cho rất khó để thiết kế và thực hiện các đơn vị điều khiển phức tạp với côngnghệ này. Do đó, mạch cứng thường được sử dụng khi đơn vị điều khiển tương đối đơn giản. Hầu hết những khó khăn trong

việc thiết kế các đơn vị điều khiển mạch cứng là các lỗ lực để tối ưu hoá các mạch tổ hợp. Nếu có một phương pháp màkhông cần cố gắng tối ưu hoá mạch tổ hợp sự phức tạp của việc thiết kế có thể giảm đi đáng kể. Một tuỳ chọn hiển nhiên làsử dụng hoặc bộ nhớ chỉ đọc (ROM) hoặc bộ nhớ truy cập ngẫu nhiên (RAM) để thực hiện mạch tổ hợp. Một đơn vị điềukhiển có mạch tổ hợp được đơn giản bằng cách sử dụng ROM hoặc RAM được gọi là đơn vị điều khiển được vi lập trình. Bộ

2

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 3/15

 Kiến trúc

nhớ được sử dụng được gọi là bộ nhớ điều khiển CM. Thực tế việc nhận ra mạch tổ hợp trong một đơn vị điều khiển vơiROM/RAM được gọi là vi lập trình. Khái niệm vi lập trình lần đầu tiên được giới thiệu bởi Wilkes. Ý tưởng sử dụng một bộnhớ để thực hiện một mạch tổ hợp được mô tả bằng một ví dụ đơn giản. Giả sử rằng chúng ta thực hiện một hàm logic với ba biến đầu vào như được miêu tả trong bảng sự thật thể hiện trong hình 42.2a. Một cách phổ biến để nhận ra hàm này là sửdụng bản đồ Karnaugh để nhận được hàm ligic tối thiểu và dây. Kết quả này được chỉ ra trong hình 42.2b. Một hàm tương tựcũng có thể được nhận ra trong bộ nhớ. Trong phương pháp này một bộ nhớ với tám vị trí 1-bit có thể được tám tổ hợp có thểcủa ba biến đầu vào. Vị trí i chứa giá trị F tương ứng với sự tổ hợp đầu vào thứ i. Ví dụ: Vị trí 3 chứa giá trị F (0) đối với sựliên kết đầu vào 011. Ba biến đầu vào được kết nối với các đầu vào địa chỉ của bộ nhớ để hoàn thành việc thiết kế này (hình42.2c). Trong thực tế bộ nhớ chứa toàn bộ bảng sự thật.

Hình 42.2 Sử dụng bộ nhớ để đơn giản hoá viêc thiết kế logic: (a) Bản đồ Karnaugh, (b) logic, (c) bộ nhớ 

Hình 42.3 Mô hình cơ bản của đơn vị điều khiển được vi lập trình

Việc giải mã logic và chứa các tế bào trong một bộ nhớ 8x1 rõ ràng rằng bộ nhớ sử dụng các thành phần phần cứng nhiềuhơn rất nhiều so với bản đồ Karnaugh. Tuy nhiên việc thiết kế đơn giản hơn rất nhiều đối với bộ nhớ.

Hình 42.3 thể hiện một mô hình của một đơn vị điều khiển được vi lập trình. Mỗi vị trí bộ nhớ điều khiển chứa đựng mộttrường địa chỉ và vài trường điều khiển. Trường địa chỉ cộng với địa chỉ logic tiếp theo thực hiện mạch logic tổ hợp cho việctạo ra giá trị trạng thái tiếp theo. Các trường điều khiển thực hiện mạch tổ hợp cho việc tạo ra các tín hiệu điều khiển. Cả bộnhớ điều khiển và địa chỉ ligic tiếp theo sẽ được nghiên cứu một cách chi tiết ở đoạn này. Trạng thái thanh ghi-bộ đếm đãđược đổi tên thành thanh ghi địa chỉ-bộ nhớ điều khiển (CMAR) bởi một lý do: Nội dung của thanh ghi được sử dụng nhưmột địa chỉ đầu vào cho bộ nhớ điều khiển. Một điều quan trọng là CMAR chứa trạng thái của đơn vị điều khiển.

Đường dữ liệu

Đường dữ liệu của bộ vi xử lý chứa đựng các đơn vị thực hiện logic và số học được đòi hỏi để thực hiện các lệnh. Việcthiết kế đường dữ liệu liên quan đến việc phân tích các chức năng được thực hiện sau đó chỉ ra rõ một tập các thanh ghi phầncứng để giữ trạng thái tính toán, và thiết kế các bước tính toán để chuyển đổi nội dung các thanh ghi thành kết quả cuối cùng. Nói chung các chức năng được thực hiện được chia thành nhiều bước, mỗi một bước có thể được làm với một số lượng logichợp lý trong một chu kỳ đồng hồ. Mỗi một bước sẽ đưa nội dung của thanh ghi đến gần kết quả cuối cùng hơn. Đường dữliệu phải được trang bị với một số lượng phần cứng đáng kể để cho phép những bước tính toán này cho một chu kỳ đồng hồ.Đường dữ liệu của một bộ vi xử lý điển hình chứa các file thanh ghi nguyên và thập phân, mười hoặc nhiều hơn các đơn vịchức năng cho việc tính toán và truy cập bộ nhớ và các thanh ghi đường chính. Một điều bắt buộc là phải hiểu khái niệm vềđường ống để hiểu về đường dữ liệu của bộ vi xử lý ngày nay.

Kênh cung cấp

Vào những năm 1970 chỉ có những siêu máy tính và máy chủ có đường tin riêng. Ngày nay hầu hết các bộ vi xử lýthương mại cũng có đường tin riêng. Thực tế các đường tin có một lý do chính tại sao các bộ vi xử lý ngày nay hoạt động tốthơn so với các siêu máy tính được xây dựng cách đây gần chục năm. Đường tin riêng là một công nghệ phối hợp xử lý các

3

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 4/15

Sổ tay Cơ điện tử 

hoạt động song song. Công nghệ này đã được sử dụng trong việc liên kết các đường dây của các ngành công nghiệp chínhcách đây hơn một thế kỷ. Ý tưởng để có một hệ thống công nhân làm việc chuyên môn hoá trong những phần khac nhau củacông việc để yêu cầu tạo ra một sản phẩm cuối cùng. Một dây truyền mang mỗi sản phẩm qua một hàng công nhân. Mỗi mộtcông nhân sẽ làm một phần nhỏ của công việc trên mỗi sản phẩm. Mỗi sản phẩm sẽ hoàn thiện sau khi nó được xử lý bởi tấtcả các công nhân trong một hàng liên kết. Ưu điểm của đường ống là cho phép một công nhân có thể ngay lập tức bắt đầumột công việc trên một sản phẩm mới sau khi kết thúc công việc ở sản phẩm hiện thời. Một phương pháp tương tự cũng đượcứng dụng để thực hiện quá trình xử lý trong vi điều khiển. Hình 42.2a chỉ ra một đường ống 5 tầng chia nhỏ các lệnh thựchiện thành Fetch(F), Decode(D), Execute(E), Memory (M), Write-back (W). Mỗi yêu cầu các tầng logic cụ thể thay đổi. Giữamỗi tầng là một tầng thanh ghi được sử dùng để giữ các thông tin về câu lệnh cần thiết để điều khiển các câu lệnh. Mộtnguyên tắc cơ bản của đường ống là công việc được thực hiện bởi mỗi tầng phải có cùng một số lượng thời gian. Nếu khônghiệu quả sẽ giảm đi đáng kể vì một tầng sẽ trở thành nút cổ chai của toàn bộ đường ống. Tương tự thời gian suy giảm của cáctầng đường ống chậm nhất xác đinh toàn bộ tần số của bộ xử lý. Do sự hạn chế và các đặc tính về tốc độ bộ nhớ, mô hìnhđường ống 5 tầng thường được yêu cầu một vài nguyên tắc 5 tầng để chia nhỏ thành các tầng nhỏ hơn. Ví dụ tầng bộ nhớ được chia thành ba tầng cho phép sự truy nhập bộ nhớ được đưa vào đường ống và toàn bộ tốc độ đồng hồ bộ xử lý là mộthàm phân số của độ trễ truy nhập bộ nhớ.

Hình 42.4 cấu trúc của một đường ống: (a) máy, (b) các câu lệnh chồng

Thời gian để yêu cầu kết thúc N câu lệnh trong một đường ống có K tầng có thể được tính. Giả sử rằng một chu kỳ thờigian T cho sự hoàn thành toàn bộ câu lệnh, do đó độ trễ xử lý mỗi tầng bằng T/K. Với một lược đồ đường ống câu lệnh đầutiên hoàn thành đường ống sau T và sẽ có một câu lệnh mới bên ngoài đường ống trên một độ trễ tầng T/K. Do đó, độ trễ củaviệc thực hiện N câu lệnh có và không có đường ống tương ứng là:

( )T N ∗ (42.1)

( ) ( )/ 1T T k N  + ∗ − (42.2)

Có một độ trễ khởi tạo trong mô hình thực hiện đường ống trước khi mối tầng hoạt động. Độ trễ khởi tạo được gọi là độtrễ bắt đầu (P), và bằng tổng thời gian thực hiện của một câu lệnh. Tốc độ của một máy có đường ống liên quan tới một máykhông có đường ống được tính như sau:

( )1

 P N 

 P N 

+ −(42.3)

Khi N lớn hơn P rất nhiều, tốc độ lý tưởng sẽ tiến tới P. Kết quả có thể cảm nhận được vì có P bộ phận của máy đang làmviệc song song cho phép việc thực hiện nhanh hơn P lần trong điều kiện lý tưởng. Sự chồng của các câu lệnh nối tiếp trongmột bộ xử lý đường ống được chỉ ra trong hinh 42.4(b). Câu lênh đường ống trở nên đầy sau độ trễ đường ống P=5 chu kỳ.Mặc dù cấu hình đường ống hoạt động ở mỗi tầng của bộ xử lý, hai cơ chế quan trọng được xây dựng để đảm bảo chức nănghoạt động chính xác giữa các câu lệnh phụ thuộc vào các rủi ro dữ liệu. Các rủi ro dữ liệu này xảy ra khi các câu lệnh trongđường ống tạo ra các kết quả cần thiết cho các câu lênh sau mà đã được bắt đầu trong đường ống. Trong cấu hình đường ốngở hình 42.4a, thanh ghi được phục hồi trong tầng giải mã. Tuy nhiên tầng bộ nhớ và thực hiện có thể định nghĩa thanh ghi vàchứa giá trị hiện thời chính xác nhưng không có khả năng cập nhật file thanh ghi cho đêna khi tầng thực hiện viết ngược trở lại sau đó. Việc chuyển là một hành động của việc nhận được các giá trị hoạt động chính xác cho các câu lệnh thực hiện giữatruy nhập file thanh ghi khởi tạo và sự cập nhật của bất kỳ các file thanh ghi của câu lệnh.

4

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 5/15

 Kiến trúc

Sự cài đặt lẫn nhau là một hành động ngăn cản một hoạt động trong đường ống khi các điều kiện gây ra các kết quả thanhghi cần thiết bị trễ. Sự ngăn cản các tầng trước của máy là cần thiết để các kết quả chính xác được sử dụng và máy không phải xử lý các kết quả sai đối với các nguồn hoạt động. Nguyên nhân chủ yếu của viêc trễ trong việc thực hiện đường ống làsự khởi tạo độ trễ của các câu lệnh và độ trễ bộ nhớ.

Nhánh dự báo

 Nhánh dự báo các vấn đề nghiêm trọng cho các bộ xử lý đường ống bằng cách làm cho bộ cứng thực hiện các câu lệnh

cho đến khi các nhánh dự báo hoàn thành . Việc thực hiện các dự báo không chính xác có thể gây ra sự suy giảm quá trìnhhoạt động nghiêm trọng qua việc sử dụng các chu kì thừa trong dòng câu lệnh .

Có vài phương pháp để giải quyết với các vấn đề đường ống gây ra bởi nhánh dự báo. Phương pháp đơn giản nhất xử lýcác nhánh bằng cách coi các nhánh như được thực hiện hoặc không được thực hiện. Sự đối xử này có thể được thiết lập chomỗi nhánh hoặc được xác định bằng mã nhánh.Sự thiết kế cho phép các đường ống tiếp tục nhận các câu lệnh như thể cácnhánh là các câu lệnh bình thường. Tuy nhiên, các câu lệnh nhận được có thể cần phải loại bỏ và sự nhận các câu lệnh khởiđộng lại khi kết quả nhánh là sai.

 Nhánh bị trễ là một phương pháp khác thứ coi tập các chuỗi câu lệnh theo sau một nhánh như là các khe trễ. Các câu lệnkhe trễ được thực hiện hoặc có hoặc không có nhánh dự báo xảy ra. Sự giới hạn ở trên nhánh trễ là do các đặc tính lập trìnhvà biên dịch đang không thể hỗ trợ các câu lệnh thực hiện độc lập với hướng nhánh. Sự cải thiện được đưa ra để cung cấpnhánh huỷ bỏ, thứ bao gồm một hướng dự báo trước cho nhánh. Khi sự dự báo trước bị sai , các câu lệnh khe trễ bị xoá bỏ.

Hình 42.5 Sự dự báo nhánh

Một cách hiện đại hơn để giảm các rủi ro nhánh sử dụng phần cứng để dự báo động kết quả của một nhánh . Các chiếnlược dự báo nhánh giảm toàn bộ các rủi ro nhánh bằng cách cho phép phần cứng tiếp tục xử lý câu lệnh theo đường điềukhiển được dự báo , do đó loại bỏ được các chu kỳ thừa. Sự hoạt động hiệu quả có thể được duy trì trong khi các nhánh mụctiêu được dự báo chính xác. Tuy nhiên, một hình phạt hoạt động lớn xảy ra khi một nhánh bị dự báo nhầm. Bộ đệm mục tiêunhánh là một cấu trúc lưu trữ được truy cập song song cùng với sự nhận các câu lệnh. Nó ghi lại các dự báo nhánh để một sựdự báo được tạo trong khi các nhánh đang nhận . Phương pháp dự báo này nhận được dự báo nhánh tới các hành vi lập trìnhthời gian chạy , tạo ra một sự dự báo chính xác. Địa chỉ đích của các nhánh cũng được nhớ vào trong bộ đệm để các câu lệnhđích có thể nhận được ngay tức khắc nếu một nhánh được dự báo. Một vài phương pháp dự báo nhánh đích đã đựoc xây dựng. Hình 42.5 mô tả một vài lựơcđồ nhánh dự báo.Việc thực hiện thông dụng nhất giữ lại các thông tin lịch sử cho mỗi nhánhđược chỉ ra trong hình 42.5(a). Lịch sử bao gồm các hướng nhánh ban đầu cho việc tạo các dự báo trên các hướng nhánhtương lai. Lịch sử đon giản nhất là được xảy ra cuối cùng , thứ sử dụng 1-bit để gọi lại liệu nhánh điều kiện là xảy ra haykhông xảy ra. Một phương pháp dự báo nhánh hiệu quả hơn sử dụng bộ đếm lịch sử trạng thái 2-bit để xác định các kết quảnhánh dự báo tương lai tương tự hình 42.5(a). 2 bit chứ không phải 1 bit cho phép mỗi nhánh đựơc xem như là xảy ra mạnhhoặc yếu hoặc không xảy ra. Mõi một dự báo chính xác sẽ củng cố sự dự báo , trong khi sự báo sai sẽ làm giảm nó. Hai sự dự báo sai sẽ đảo lại hướng (hoặc là xảy ra hoặc là không) của dự báo.Ngày nay , các lược đồ nhánh dự báo tương thích 2 mứcđộ phức tạp hơn đã đwocj xây dựng , thứ xử dụng 2 mức lịch sử nhánh để tạo ra dự báo , như được chỉ ra ở hình 42.5(c). Mứcthứ nhất là lịch sự kết quả nhánh của nhánh cuối cùng gặp phải. Mức thứ 2 là hành động cảu nhánh đối với sự xảy ra cuốicùng của một mẫu các lịch sử nhánh. Có một vài phương pháp khác thay thế việc cấu trúc hai mức của lựơc đồ dự báo nhánhtương thích , cơ chế có thể chứa thông tin hoặc là dựa trên các nhánh riêng lẻ , nhóm , hoặc tất cả . Thông tin riêng lẻ chứalịch sử nhánh cho mỗi dự báo nhánh.Thông tin dựa trên nhóm nhóm các nhánh theo địa chỉ câu lệnh của chúng , do đó hìnhthành các tập lịch sử nhánh.. Thông tin toàn bộ sử dụng lịch sử toàn bộ chứa tất cả các kết quả nhánh . Mức thứ 2 chứa cáchành vi của nhánh cũng có thể được tạo băng cách sử dụng 3 loại này. Nói chung mẫu lịch sử nhánh mức 1 được sử dụng nhưlà một phụ lục cho lịc sử nhánh mức 2.

Hệ thống bộ nhớ phụ

Hệ thống bộ nhớ phục vụ như là một bộ chứa thông tin trong hệ thống vi xử lý. Đơn vị xử lý nhận được các thông tinđựoc lưu trữ trong bộ nhớ , hoạt động trên các thông tin , và trả lại các thông tin mới tới bộ nhớ.Hệ thống bộ nhớ được cấutạo từ các đơn vị DRAM bán dẫn cơ bản được gọi là môđun hoặc các khối.

5

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 6/15

Sổ tay Cơ điện tử 

Một vài chi tiết về bộ nhớ , bao gồm tốc độ , và giá trị đóng vai trò quan trọng trong toàn bộ việc hoạt động của hệ thống.Tốc độ của một hệ thống bộ nhớ là tham số hoạt động chính trong việc thiết kế hệ thống vi xử lý. Độ trễ (L) của bộ nhớ đượcđịnh nghĩa là thời gian trễ từ khi bộ xử lý lần đầu yêu cầu dữ liệu từ bộ nhớ cho đến khi bộ xử lý nhận được dữ liệu.

Băng thông (BW) được định nghĩa là tốc độ tại đó thông tin có thể đươc truyền từ hệ thống bộ nhớ. Băng thông bộ nhớ vàđộ trễ liên quan đến số lượng yêu cầu (R) mà bộ nhớ có thể phục vụ.

LW=

 B (42.4)

Băng thông đóng vai trò quan trọng trong việc giữ cho bộ điều khiển luôn bận trong quá trình làm việc. Tuy nhiên côngnghệ để tối ưu độ trễ và cải thiện băng thông thường xung đột với sự cần thiết tăng khả năng và giảm giá trị hệ thống.

Bộ nhớ Cache

Bộ nhớ Cache , hay đơn giản cache , là một bộ nhớ nhỏ nhanh, được cấu tạo từ các SRAM bán dẫn. Trong các hệ thốngmáy tính hiện đại luôn luôn có sự phân cấp của bộ nhớ cache.Cache mức đỉnh là gần với bộ xử lý nhất và mức thấp nhất làgần vơí bộ nhớ chính. Mỗi một cache mức cao hơn nhanh hơn khoảng 5- 10 lần so với mức tiếp theo.Mục đích của một phâncấp cache là để thoả mãn hầu hết các bộ nhớ bộ điều khiển truy cập vào 1 hoặc một số nhỏ chu kỳ đồng hồ. Cache mức đỉnhthường được chia thành cache câu lệnh và cache dữ liệu để cho phép bộ điều khiển truy nhập đồng thời đối với câu lệnh vàdữ liệu. Các bộ nhớ cache lần đầu tiên được sử dụng trong các máy chủ IBM vào những năm 1960. Kể từ năm 1985 các bộnhớ cache đã trở thành một tiêu chuẩn cho tất cả các bộ vi xử lý. Các bộ nhớ cache khai thác nguyên tắc tham chiếu cục bộ.

 Nguyên tắc này là vài vị trí các bộ nhớ được tham chiếu nhiều thường xuyên hơn so với những cái khác, dựa trên hai tínhchất lập trình.

Ví trí không gian Spatial locality là tính chất mà một truy nhập tới vị trí một bộ nhớ tăng khả năng mà vị trí bộ nhớ bêncạnh cũng sẽ bị truy nhập . Vị trí không gian chủ yếu dựa trên chuỗi truy nhập tới mã chương trình và dữ liệu được cấu trúc.Vị trí tạm thời là tính chất mà sự truy nhập tới một vị trí bộ nhớ tăng đáng kể khả năng rằng cùng vị trí sẽ đựơc truy nhậptrong tương lai . Hai tính chất này cùng nhau đảm bảo rằng hầu hết các tham chiếu bộ nhớ sẽ thoả mãn bộ nhớ cache.

Có vài sự thiết kế bộ nhớ cache khác nhau : ánh xạ trực tiếp, sự liên kết đầy đủ, và sự liên kết một tập.Hình 42.6 mô tả 2lược đồ cơ bản của bộ nhớ cache , ánh xạ trực tiếp và liên kết một tập

Hình 42.6 Bộ nhớ cache (a) ánh xạ trực tiếp,(b) liên kết một tập 2 đường

Cache ánh xạ trực tiếp, được chỉ ra trong hình 42.6(a) cho phép mỗi khối bộ nhớ có một nới đểlưu ở trong cache, Cache liên kết đầy đủ , tronghình 42.6(b) cho phép một khối được đặt ở bất kỳđâu trong cache. Cache liên kết một phần hạn chế một khối để giới hạn một tập những nơi trongcache.

Sự lệch cache xảy ra khi dữ liệu được yêu cầu không có trong bất cứ vị trí có thể nào của cache. Sự lỗi trong cachethường được phân làm 3 loại : xung đột , ép buộc , và dung lượng. Lỗi xung đột là các lỗi sẽ không xảy ra trong cache liênkết đầy đủ với LRU (được sử dụng ít nhất ngày nay) thay thế. Lỗi ép buộc là các lỗi được yêu cầu trong các bộ nhớ cache choviệc khởi tạo tham chiếu vị trí một bộ nhớ . Lỗi dung lượng xảy ra khi kích thước cache không đủ lớn để chứa dữ liệu giữacác tham chiếu .Các định nghĩa lỗi cache hoàn chỉnh được cung cấp trong Ref 4. Không giống như tính chất của hệ thống bộnhớ , trễ trong bộ nhớ cache là không cố định và phụ thuộc và độ trễ và tần số của lỗi cache . Một metric hoạt động đếm cáchình phạt của lỗi cache là độ trễ hiệu quả. Trễ hiệu quả là phụ thụôc vào 2 khả năng trễ , trễ va chạm , trễ được gây ra do sự

truy cập dữ liệu bên trong cache,và trễ lỗi (LMISS), trễ do sự truy nhập dữ liệu không ở trong cache. Trễ hiệu quả cũng phụthuộc vào tốc độ va chạm (H) , phần trăm truy cập bộ nhớ là các va chạm trong cache, và tốc độ lỗi, phần trăm truy cập bộnhớ lỗi trong cache. Độ trễ hiệu quả trong một hệ thống cache được tính như sau:

6

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 7/15

 Kiến trúc

( )HIT MISShiÖu dông 1 L L H L H  = ∗ + ∗ − (42.5)

Thêm vào việc thiết kế cache cơ bản và các vấn đề về kích thước, có một vài tham số mà ảnh hường đến toàn bộ hoạtđộng của cache và tốc độ lỗi trong một hệ thống. Phương pháp cập nhật bộ nhớ chính chỉ ra khi nào bộ nhớ chính sẽ được cậpnhật bởi sự lưu trữ sự hoạt động. Trong write-through cache, mỗi lần ghi ngay lập tức phản ánh đến bộ nhớ chính . Trongwrite-back cache các lần ghi được phản ánh tới bộ nhớ chính chi khi khối cache tương ứng bị thay thế. Sự định vị rõ các khốicache là một tham số khác và xác định khi nào khối cache là ghi hay đọc. Cuối cùng, moọt giải thuật thay thế cho các cấu

trúc liên kết có thể được thíêt kế theo vài cách khác nhau để tách ra sự hoạt đông thêm của cache . Những cái này bao gồmLRU, LFU , ngẫu nhiên, và FIFO(fist in , fist out) > Chiến thuật quản lý cache cố gắng khai thác các tính chất về vị trí . Vị tríkhông gian được khai thác bằng cách quyết định khối bộ nhớ nào được đặt vào trong cache , vị trí tạm thời được khai thác bằng cách quyết định khối cache nào bị thay thế. Theo nguyên tắc , khi dich vụ cache lỗi , chúng sẽ chặn tất cả các yêu cầumới , Tuy nhiên các cache không khoá có thể được thiết kế để phục vụ nhiều lỗi yêu cầu đồng thời , do đó làm giảm độ trễtruy cập dữ liệu bộ nhớ. Thêm vào phân cấp cache nhiều mức , các bộ nhớ đệm có thể được sử dụng để cải thiện khả nănghoạt động của cache. Hai bộ đệm như thế là một bộ đệm dòng và một victim cache.Hình 42.7 mô tả mối quan hệ giữa bộđệm dòng và victim cache với cache chính của hệ thống bộ nhớ.

Hình 42.7 Hệ thống bộ nhớ cache hiện tiên tiến

Bộ nhớ dòng được sư dụng như là một cơ chế nhận được trước các lỗi cache . Khi một lỗi cachexảy ra , bộ đệm dòng bắt đầu nhận được các dòng thanhf công bắt đầu tại lỗi đích. một victimcache điển hình là nhỏ , cache liên kết đầy đủ được tải chỉ khi với các dong cache bị xoá khỏi cache

chính. Trong trường hợp có một lỗi trong cache chính , victim cache có thể dữ các dữ liệu thêm .Việc sử dụng victim cache có thể cải thiện khả năng hoạt động bằng cách giảm số lượng các lỗi vachạm . Hình 42.7 mô tả cách truy nhập cache được xử lý qua bộ đệm dòng vào trong cache chínhtrên các yêu cầu cache , và từ cache chính qua victim cache tới mức thứ 2 của bộ nhớ trên lỗicache.Tóm lại bộ nhớ cache đựơc cấu tạo để giữ hầu hết các phần quan trong của bộ nhớ. Côngnghệ sử dụng hoặc phần cứng hoặc phần mềm để lựa chọn phần nào của bộ nhớ chính để lưu vaotrong cache. Tuy nhiên khả năng hoạt động của cache bị ảnh hưởng mạnh bởi hành vi lập trình vàsố lượng phần cứng thiết kế thay đổi.

Bộ nhớ ảo

Bộ nhớ Cache thể hiện nguyên tắc mà địa chỉ bộ nhớ dữ liệu có thể được tách riêng khỏi một vi trí lưu trữ cụ thể . Các địachỉ trừu tượng tương tự tồn tại trong phân cấp bộ nhớ 2 mức của bộ nhớ chính và đĩa lưu trữ . Một địa chỉ được tạo ra bằng

một chương trình địa gọi là địa chỉ ảo , thứ cần thiết để được chuyển thành địa chỉ vật lý hoặc một vị trí trong bộ nhớ chính.Quản lý bộ nhớ ảo là một cơ chế , cung cấp cho người lập trình với những phương pháp mẫu đơn giản để truy nhập vào cả bộnhớ chính và bộ nhớ phụ .

Với sự quản lý bộ nhớ ảo , người lập trình được đưa các khoàng không ảo để giữ tất cả câu lệnh và dữ liệu . Khoảngtrống ảo được sắp đặt như là một dãy tuyến tính các vị trí. Mỗi vị trí có một địa chỉ để truy cập thuận tiện . Các câu lệnh vàdữ liệu phải được lưu trữ ở một nơi nào đó trong hệ thống thật ; những vị trí khoảng không ảo này phải tương ứng với vài vịtrí vật lý trong bộ nhớ chính và bộ nhớ phụ. Quản lý bộ nhớ ảo ánh xạ các vị trí khoảng không ảo trong các vị trí bộ nhớ chính và bộ nhớ phụ . Sự ánh xạ các vị trí khoảng không ảo tới bộ nhớ chính và phụ được quản lý việc quản lý bởi bộ nhớ ảo . Những người lập trình không phải quan tâm tới việc ánh xạ.

Hầu hết các lược đồ quản lý thông dụng ngày nay được yêu cầu đánh trang quản lý bộ nhớ ảo, ở đó mỗi khoảng không ảođược chia thành các trang được đánh số trang(PN). Mỗi một trang chứa một vài vị trí trong khoảng không ảo được chỉ định bởi chỉ số trang (PI) . Số lượng vị trí trong mỗi trang là một thông số thiết kế quan trọng gọi là kích thước trang . Kích thướctrang thường được định nghĩa là số mũ của 2 để khoảng không ảo có thể được chia thành mốt số nguyên các trang . Các tranglà đơn vị cơ bản của quản lý bộ nhớ ảo . Nếu bất kỳ vị trí nào trong một trang được ánh xạ tới bộ nhớ chính , các vị trí kháctrong trang đó cũng được ánh xạ tới bộ nhớ chính . Điều này giảm kích thước thông tin ánh xạ .

7

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 8/15

Sổ tay Cơ điện tử 

Thành phần của bộ nhớ phụ để chứa đựng các trang của khoảng không ảo đựơc gọi là khoảng không trao đổi . Cả bộ nhớ chính và khoảng không trao đôỉ được chia thành các khung trang. Mỗi một khung trang có thể lưu trữ một trang của bộ nhớ ảo . Nếu một trang là được ánh xạ vàp trong bộ nhớ chính , nó cũng được giữ bời khung trang trong bộ nhớ chính . Việc ghiánh xạ trong quản lý bộ nhớ ảo giữ lại các dấu vết liên kết các trang và khung trang.

Khi vị trí của một khoảng không ảo được yêu cầu , quản lý bộ nhớ ảo sẽ tìm kiếm bản ghi ánh xạ . Nếu bản ghi ánh xạ chỉra rằng trang đang chứa đựng các vị trí khoảng không ảo được yêu cầu là trong bộ nhớ , việc quản lý thực hiện việc truy nhậpmà không có bất cứ sự biên dịch nào . Nếu không, Nếu sự truy nhập bộ nhớ thứ 2 phải được thực hiện . Truy nhập bộ nhớ 

thứ 2 luôn luôn là một nhiệm vụ phức tạp và luôn luôn được thực hiện là một dịch vụ hệ điều hành . Để truy cập một loạithông tin lưu trong bộ nhớ thứ 2 , một dịch vụ hệ điều hành luôn luôn phải được yêu cầu đểc chuyển các thông tin và trong bộnhớ chính . Điều này cũng áp dụng cho việc quản lý bộ nhớ ảo . Khi một trantg được ánh xạ vào trong bộ nhớ thứ 2 , quản lý bộ nhớ ảo phải yêu cầu một dịch vụ trong hệ điều hành để chuyển các vị trí khoảng không được yêu cầu vào trong bộ nhớ chính.cập nhật bản ghi ánh xạ của nó , và sau đó thực hiện truy nhập . Do đó dịch vụ hệ điều hành được thực hiện được gọi làxử lý trang ngầm định . Quá trình xử lý chính của quản lý bộ nhớ ảo là một giải thuật truy cập bộ nhớ . Gíải thuật chuyển đổiđịa chỉ ảo một mức được mô tả trong hình 42.8.Tại lúc bắt đầu chuyển đổi , giải thuật truy nhập bộ nhớ một địa chỉ ảo trongthanh ghi địa chỉ bộ nhớ (MAR) , tìm kiếm bản ghi ánh xạ , yêu cầu một dịch vụ hệ điều hành để chuyển các trang được yêucầu nếu cần thiết , và thực hiện truy nhập bộ nhớ chính.

Hình 42.8 Chuyển đổi bộ nhớ ảo

Sự ánh xạ được ghi vào trong một cấu trúc dữ liệu được gọi là bảng trang định vị trong bộ nhớ chính tại một vị trí đượcđánh dấu thanh ghi cơ sở bảng trang (PTBR). Chỉ số bảng trang và PTBR hình thành địa chỉ vật lý (PAPTE) của các mục bảng trang tương ứng (PTE). Mỗi PTE giữ dấu ánh xạ của một trang trong khoảng không ảo . Nó bao gồm 2 trường : một bitva chạm/ lỗi và số trang . Nếu bit va cham/lỗi H/M được thiết lập thì trang tương ứng nằm bên trong bộ nhớ chính . Trongtrường hợp này khung trang đang phục vụ các yêu cầu là được trỏ tới bởi số khung trang (PFN). Địa chỉ vật lý cuối cùng(PAD) của dữ liệu yêu cầu được hình thành bằng cách sử dụng PFN và PI. Dữ liệu được trả về và đặt vào trong thanh ghi bộnhớ đệm (MBR) và bộ điều khiển đựơc thông báo về việc truy cập bộ nhớ thành công . Nếu không (lỗi) , sự truy cập bộ nhớ thứ 2 phải được thực hiện . Trong trường hợp này , số khung trang nên bị bỏ qua. Xử lý trang ngầm định phải liên quan đếntruy nhập bộ nhớ thứ 2 . Các thành phần bộ cứng mà thực hiện việc giải thuật chuyển đổi địa chỉ được gọi là đơn vị quản lý

 bộ nhớ(MMU).Sự phức tạp của giải thuật phụ thuộc vào cấu trúc ánh xạ . Một cấu trúc ánh xạ đơn giản đựơc sử dụng trong phần này để

tập trung vào các nguyên tắc cơ bản của các giải thuật truy cập bộ nhớ . Tuy nhiên, các lược đồ 2 mức phức tạp hơn thườngxuyên được sử dụng do kích thước cảu khoảng không ảo . Kích thước của bảng trang được thiết kế có thể rất lớn cho một phạm vi kích thước bộ nhớ chính .Như thế , nó trở thành thiết yếu để ánh xạ các phần cảu bảng trang vào trong một bảngtrang thứ 2.Trong một thiết kế như vậy , bảng trang mức độ thứ 2 được lưu trữ trong một nới dự phòng của bộ nhớ chính ,trong khi bảng trang đầu tiên được ánh xạ giống như dữ liệu trong khoảng không ảo. Cũng có các yêu cầu cho việc thiết kếnhư thế trong một hệ thống đa lập trình, ở đó có nhiều quá trình xử lý tích cực cùng một lúc. Mỗi bộ điều khiển có khoảngkhông ảo của chính nó và do đó có bảng trang của chính nó . Như là một kết quả, những hệ thống này cần giữ nhiều bảngtrang cùng một lúc . Nó thường lấy quá nhiều bộ nhớ chính để lưu tất cả các bảng trang tích cực . Một vấn đề giải quyết vấnnày là cung cấp các mức khác của ánh xạ .

Translation Lookaside Buffer

Phần cứng hỗ trợ cho một hệ thống bộ nhớ ảo nói chung thường gồm một cơ chế để chuyển đổi địa chỉ ảo thành địa chỉvật lý thật được sử dụng để truy nhập bộ nhớ chính . Một Translation Lookaside Buffer (TLB) là một cấu trúc lưu trữ , chứa

8

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 9/15

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 10/15

Sổ tay Cơ điện tử 

Một bộ điều khiển DMA là một bộ điều khiển ngoại vi mà có thể điều khiển trưc tiếp địa chỉ của các đường bus hệ thống.Dữ liêu được di chuyển trực tiếp từ bộ đệm dữ liệu đến bộ nhớ chính, chứ không phải từ bộ đêm dữ liêu tới 1 thanh ghi CPU ,sau đó từ thanh ghi CPU tới bộ nhớ chính.

Hệ thống liền nhau

Sự liên kết hệ thống là một khả năng cho phép các thành phần trong môt hệ thống máy tính kết nối với các thành phầnkhác .

Đường liên kết chuyên dụng hay các kết nối điểm-điểm chỉ định kết nối giữa các thành phần. Có các cấu hình kết nối hệthống khác nhau dựa trên các kết nối của các thành phần hệ thống. Một cấu hình kết nối hoàn chỉnh, yêu cầu n*(n-1)/2 đườngliên kết được tạo khi có một đường liên kết giữa tất cả các cặp thành phần có thể. Một cấu hình khối ánh xạ một n-tuple duynhất (1 0) như là toạ độ của mỗi thành phần và cấu trúc của một đường liên kết giữa các thành phần có toạ độ chỉ khác trongkích thước một chiều , yều cầu N*logN đường liên kết . Kết nối mesh sắp đặ các thành phần hệ thống trong mảng kích thước N chiều và có cá kết nối giữa các hàng xóm , cần 2*N đường liên kết.

Công tắc mạng là một nhóm các công tắc xác định sự tồn tại của các đường liên kết kết nối giữa các thành phần . Mộtmạng thanh ngang được xem như là mẫu phổ biến nhất của mạng chuyển mạchvà sử dụng mảng hai chiều N M của các côngtắc để cung cấp các kết nối giữa N thành phần ở một phía và M thành phần ở phía bên kia sử dung N*M công tắc và N+Mđường liên kết . Một mạng chuyển mạch khác là mạng nhiều tầng , sử dụng nhiều tầng các mạng xáo trộn để cung cấp các cácmẫu kết nối giữa N thành phần ở một phía bằng cách sử dụng NlogN chuyển mạch và NlogN liên kết.

Bus chia sẻ (Shared buses) là các liên kết đơn thứ kết nối tất cả các thành phần tới tất cả

các thành phần khác và là cấu trúc kết nối thông dụng nhất .Sự chia sẻ các bus giữa các thànhphần của một hệ thống yeu cầu một vầi khía cạnh điều khiển bus . Trước hết, có một sự phân biệtgiữa các bus chủ master , các đơn vị điều khiển bus truyền(CPU,DMA, IOP) và các bus slaves , cácđơn vi khác (bộ nhớ , các cổng I/O lập trình được ) Giao diện bus và địa chỉ bus là các phương tiệnđể kết nối và huỷ các kết nối các đơn vị trên bus. Sự phân xử bus là một qua trình cấp tài nguyênbus cho một trong những người yêu cầu . Sự phân xử sử dụng một lược đồ lựa chọn tương tự như ngắt,tuy nhiên có một vài phương pháp cố định để thiết lập sự lựa chọn . Sự phân xử có đọ ưu tiêncố định cấp cho mỗi người yêu câu một độ ưu tiên nhất định , và đẩm bảo mỗi người yêu cầu lợinhất tại một thời điểm . Định thời bus là chỉ tới phương pháp kết nối giữa các đơn vị hệ thống và cóthể được phân loại hoặc là đồng bộ hoặc không đồng bộ . Định thời bus đồng bộ sử dụng đồng hồchia sẻ để định nghĩa thời gian bus khác báo hiệu thay đổi và ổn định hoá. Đồng hồ chia sẻ giữa tấtcả các đơn vị cho phép bus được quan sát tại những khoảng thời gian và các hành động xảy ra. Tuy nhiên , bus hệ thống đồng bộ phải hoạt động tại tốc độ của thành phần có tốc độ thấp nhất .Định thời bú không đồng bộ cho phép các đơn vị sử dụng các đồng hồ khác nhau , nhưng sự thiếucủa môth đồng hồ được chia sẻ làm nó cần thiết để sử dụng các tín hiệu thêm để xác định sự phùhợp của các tín hiệu bus

42.4 Tập cấu trúc lệnh

Có một số phần tử mà đặc trưng cho kiển trúc của một tập các câu lệnh, bao gồm kích thước từ, mã hoá câu lênh và môhình cấu trúc.

Cỡ chữ 

Các chương trình thường khác về kích thước dữ liệu. Các chương trình xử lý từ hoạt động trên các dữ liệu 8bit hoặc 16bittương ứng với các ký tự trong văn bản. Rất nhiều các ứng dụng yêu cầu thanh ghi nguyên 32bit để tránh sự tràn trong việctính toán giải thuật. Việc tính toán khoa học thường yêu cầu dữ liệu 64bit thập phân để thể hiện một dải rất lớn cho các sốnguyên. Như là một kết quả, các bộ điều khiển thường được thiết kế để truy nhập các dữ liệu đa byte từ hệ thống bộ nhớ.Điều này là một nguồn rất phức tạp trong thiết kế bộ vi xử lý. Một quy ước chỉ ra số lượng các byte của một từ bộ nhớ. Trongquy ước đó byte có trọng số thấp nhất trong một từ được đánh số là byte 0. Số này được tăng lên khi các vị trí tăng lên theotrọng số. DEC VAX và X86 theo các quy ước này. Trong các quy ước lớn, byte trọng số lớn nhất trong một từ được đánh sốlà 0. Số này được giảm xuống khi vị trí giảm theo trọng số. IBM 360/3670 HP PA-RISC, Sun SPARC và Motorola 680X0theo quy ước lớn này. Sự khác nhau giữa chúng khi người sử dụng cố gắng truyền byte nhị phân giữa các máy sử dụng cácquy ước khác nhau.

Lệnh mã hóa

Mã hoá lệnh đóng một vai trò rất quan trọng trong mật độ mã và khả năng hoạt động bộ vi xử lý. Thông thường giá thànhdung lượng được xem như là một nhân tố trong việc thiết kế hoặc câu lệnh có kích thước cố định hoặc kích thước thay đổi.Việc mã hoá kích thước cố định là một đặc tính chung của các bộ vi xử lý hiện đại và các sản phẩm về sự cải tiến trong dunglượng bộ nhớ. Tập câu lệnh kích thước thay đổi là một thuật ngữ được sử dụng để miêu tả kiểu mã hóa câu lệnh mà sử dụngchiều dài câu lệnh khác nhau theo địa chỉ của mode hoạt động. Các mode địa chỉ thông thường bao gồm thanh ghi hoặc phương pháp bộ nhớ chỉ số. Hình 4.20 miêu tả các thiết kế được tìm thấy trong việc sử dụng giải mã các câu lệnh kích thước10

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 11/15

 Kiến trúc

thay đổi hiện đại. Sự thay đổi đầu tiên, hình 42.10a liên quan đến một tầng giải mã câu lệnh thêm trong thiết kế đường ống ban đầu. Trong mô hình này tầng thứ nhất được sử dụng để xác định chiều dài câu lệnh và điều khiển các câu lệnh tới tầngthứ 2, ở đó việc giải mã câu lệnh thực sự được thực hiện.

Hình 42.10 giải mã câu lệnh kích thước thay đổi: (a) staging, (b) trước giải mã

Sự thay đổi thứ 2 là trong hình 42.10b liên quan đến trước giải mã và tạo các chiều dài câu lệnh trong cache câu lệnh.

Phương pháp thiết kế này được sử dụng hiệu quả trong việc giải mã các câu lệnh khác nhau X86. Ưu điểm lớn nhất của lượcđồ này là sự đơn giản về số lượng các tầng giải mã trong thiết kế đường ống. Tuy nhiên phương pháp này yêu cầu cấu trúccache câu lệnh lớn hơn để giữ các thông tin câu lệnh.

Mô hình cấu trúc

Mô hình cấu trúc tập các câu lệnh đã tồn tại hơn 3 thập kỷ trong máy tính. Trước hết CISC (complex instruction setcomputers) đặc trưng cho thiết kế với dạng câu lệnh thay đổi, mô hình địa chỉ bộ nhớ thay đổi và số lượng loại câu lệnh lớn.Ban đầu CISC được dùng để tạo các tập câu lệnh để ghép lại các ngôn ngữ lập trình cấp cao để đơn giản hoá công nghệ biêndịch. Thêm vào đó, việc thiết kế dung lượng bộ nhớ nhỏ cũng dẫn đến sự phát triển của hệ CISC. Hai ví dụ kiến trúc chủ yếucủa mô hình CISC là Digital VAX và Intel X86. RISC (reduced instruction set computers) đạt được ưu điểm với kích thướccâu lệnh đồng bộ, tập câu lệnh load-store, mô hình địa chỉ giới hạn và giảm số lượng các loại hoạt động. Khái niệm RISCcho phép sự thiết kế vi kiến trúc của máy để trở thành đường ống dễ dàng hơn, giảm tần số chu kỳ đồng hồ bộ điều khiển và

tốc độ toàn bộ của một máy. Khái niệm RISC cải thiện ngôn ngữ lập trình công nghệ biên dịch và kích thước bộ nhớ. HP PA-RISC, Sun SPARC, IBM Power PC, MIPS và DEC Alpha là các ví dụ của kiến trúc RISC. Các mô hình kiến trúc cho phépnhiều câu lệnh sử dụng trong một chu kỳ đồng hồ được gọi là VLIW (very long instructure word). VLIWs sử dụng một sốlượng các hoạt động được vận chuyển như một câu lệnh dài đơn và đặt trách nhiệm tạo các gói câu lệnh song song trên trình biên dịch. Ban đầu các bộ điều khiển VLIW chịu đựng sự mở rộng mã do các câu lệnh. Ví dụ về công nghệ VLIW là cácmáy Multiflow Trace và Cydrome Cydra. EPIC là một khái niệm tương tự như VLIW, cả hai sử dụng trình biên dịch để khaithác một nhóm các tập câu lệnh để thực hiện song song. Thực tế rất nhiều các ý kiến về cấu trúc EPIC xuất hiện từ RISC banđầu và VLIW. Nói chung khái niệm EPIC giải quyết sự mở rộng mã quá mức và vấn đề quy mô liên quan đến VLIW nhưngkhông hoàn toàn loại bỏ hết chức năng của nó. Khuynh hướng bộ biên dịch được điều khiển bởi cơ chế cấu trúc được xemnhư một phần của kiến trúc kiểu EPIC. Intel IA64, Philips Trimedia, and Texas Instruments’ C6X là các ví dụ của máy EPIC.

42.5 Mức lệnh song song

Các bộ điều khiển hiện đại đang được thiết kế với khả năng thực hiện rất nhiều hoạt động song song tại mức lệnh. Các bộđiều khiển như thế đã khai thác ILP (instruction- leve parallelism). Việc sử dụng ILP đựơc coi như là một cấu trúc cơ bảnmới trong việc cải thiện khả năng hoạt động của bộ vi xử lý, và có một công nghệ cấu trúc rộng lớn định nghĩa cách một kiếntrúc có thể khai thác ILP.

Lệnh thực hiện động

Sự giới hạn chủ yếu của công nghệ đường ống là sử dụng xử lý câu lệnh theo thứ tự. Khi một câu lệnh trong đường ốngthì không một câu lệnh khác được cho phép xử lý, để đảm bảo sự thực hiện chính xác câu lệnh. Vấn đề này đặc biệt nghiêmtrọng đối với các máy đa nhiệm vụ, ở đó mỗi chu kỳ sẽ làm việc với nhiều câu lệnh. Tuy nhiên trong rất nhiều trường hợpmột câu lệnh có thể được thực hiện chính xác nếu không có sự phụ thuộc dữ liệu tồn tại giữa câu lệnh đang được thực hiện vàcâu lệnh chờ được xử lý tiếp theo. Một thời gian biểu tĩnh là một trình biên dịch có hướng cho các câu lệnh thời gian biểu đểtách riêng sự phụ thuộc của các câu lệnh và tối thiểu hoá các hiệu ứng. Thời gian biểu động là một hình thức khác sử dụng

 phần cứng để sắp đặt lại việc thực hiện các câu lệnh. Khái niệm về việc thực hiện động sử dụng phần cứng để dò ra sự phụthuộc trong dòng câu lệnh theo trật tự và sắp đặt lại chuỗi câu lệnh khi tìm thấy sự phụ thuộc.

 Ngày nay hầu hết các máy tính siêu hiện đại sử dụng công nghệ thời gian biểu không theo thứ tự động để tăng số lượngthực hiện trong một chu kỳ. Các bộ vi xử lý như thế cơ bản cũng sử dụng khái niệm đường ống thời gian biểu động, tất cả các

11

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 12/15

Sổ tay Cơ điện tử 

câu lệnht truyền qua một tầng theo thứ tự và được xử lý không theo thứ tự, sau đó được ghép lại theo trật tự. Có một vàithành phần chức năng trong chuỗi thông dụng này, thứ đã được phát triển trong kiến trúc máy tính. Khái niệm chức năng đầutiên là scoreboarding. scoreboarding là một công nghệ các câu lệnh được thực hiện không theo thứ tự khi có các tài nguyênvà không có sự phụ thuộc dữ liệu. Scoreboarding được tạo ra từ các vấn đề logic của máy CDC 6600 được gọi là scoreboard.Mục đích cuối cùng củ scoreboarding là xử lý mỗi câu lệnh càng sớm càng tốt.

Một hình thức cải tiến hơn cho việc thực hiện động là hình thức của Tomasulo. Lược đồ này được sử dụng trong bộ điềukhiển IBM 360/91. Mặc dù có rất nhiều sự thay đổi trong lược đồ này, khái niệm chính của việc tránh ghi sau đọc (WAR) và

ghi sau ghi (WAW) phụ thuộc vào việc thực hiện động được đưa ra bởi Tumasulo. Trong lược đồ của Tomasulo chức năngcủa Scoreboarding được cung cấp bởi các trạm dự trữ. Các trạm dự trữ lưu đệm các toán hạng của câu lệnh chờ để giải quyếtngay sau khi chúng có thể. Khái niệm này để giải quyết các câu lệnh mới ngay lập tức khi tất cả các toán hạng nguồn trở lêncó khả năng. Thay vì truy nhập vào các toán hạng đó thông qua file thanh ghi. Việc chờ các câu lệnh được chọn các trạm dựtrữ sẽ cung cấp các toán hạng đầu vào của chúng. Hành động này xoá bỏ sự phụ thuộc WAW được gây ra bởi sự viết thànhcông tới cùng một thanh ghi bằng cách bắt buộc các câu lệnh phải có các quan hệ bởi sự phụ thuộc thay vì bởi thanh ghi. nóichung việc thay đổi thanh ghi cho các toán hạng thành các trạm lưu trữ được gọi là register remaning nói chung lược đồTomasulo liên kết scoreboarding và register renaming. Một giải thuật hiệu quả cho việc khám phá đơn vị số học được cungcấp chi tiết trong lược đồ của Tomasulo.

Việc thực hiện có khả năng dự đoán trước

Các nhánh dự báo được nhận ra như là một yếu tố chính để khai thác ILP bắt buộc trình biên dịch và phần cứng tạo các dự

 báo thường xuyên về hướng nhánh để cố gắng tìm ra khuynh hướng đồng thời. Sự dự báo nhầm của những nhánh này có thểlàm suy giảm khả năng hoạt động qua việc lãng phí cac chu kỳ trong dòng câu lệnh. Chiến thuật dự báo nhánh giảm vấn đềnày bằng cách cho phép trình biên dịch và phần cứng tiếp tục xử lý các câu lệnh theo các đường điều khiển đã được dự báotrước, do đó loại bỏ được các câu lệnh thừa. Việc thực hiện được dự báo trước hỗ trợ một phương tiện hiệu qủa để loại bỏ cácnhánh khỏi dòng câu lệnh. Việc thực hiện dự báo trước được coi như là sự thực hiện có điều kiện của một câu lệnh dựa trêngiá trị của toán hạng nguồn boolean, cũng được xem như là việc dự báo của câu lệnh. Kiến trúc này cho phép hỗ trợ trình biên dịch sử dụng giải thuật if-conversion để chuyển đổi các nhánh điều khiển vào các câu lệnh được đinh nghĩa dự báotrước, và các câu lệnh dọc theo các đường thay thế của mỗi nhánh thành các câu lệnh được dự báo trước . Các câu lệnh báotrước đạt được mà không cần quan tâm đến giá trị của chúng.Các câu lện có giá trị dự báo trước đúng được thực hiện mộtcách bình thường . Ngược lại , các câu lện có giá trị dự báo sai bị loại bỏ, do đó ngăn cản được sự chỉnh sưả đổi trạng thái biđiều khiển. Việc thực hiện dự báo trước cho phép trình biên dịch nhận được dự báo trược hiệu quả để thể hiện ILP tới phầncứng theo các đường thực hiện. Việc thực hiện được báo trước đưa ra một cơ hội để cải thiện xử lý nhánh trong bộ bi xử lý.Sự loại bỏ thường xuyên các nhánh dự báo sai dẫn đến sự giảm về lỗi dự báo nhánh, cẫn đến loại bỏ các hinh phạt về khả

năng hoạt động có liên quan đến các nhánh bị loại bỏ. Việc loại bỏ các nhánh cũng giảm sự cần thiết sử lý nhiều nhánh trongmột chu kỳ cho các bộ điều khiển. Cuối cùng việc thực hiện dự báo cung cấp một giao diện hiệu quả cho các trình biên dịchđể thể hiện nhiều đường thể hiện tới phần cứng. Nếu không có sự hỗ trợ trình biên dịch, chi phí để duy trì nhiều đường thựchiện trong phần cứng tăng một cách rất lớn. Bản chất của việc thực hiện dự báo trước là khả năng để loại bỏ sự chỉnh sửatrạng thái bộ xử lý dựa trên vài điều kiện thực hiện. Sự dự báo đầy đủ hỗ trợ điều này thông qua sự liên kết một tập các câulệnh và sự mở rộng vi kiến trúc. Những sự mở rộng này có thể phân loại như là một hỗ trợ cho việc loại bỏ việc thực hiện vàcác biểu thức trạng thái. Kết quả của trạng thái được xác định nếu một câu lệnh chỉnh sửa trạng thái được lưu trong một tậpcác thanh ghi 1 bit. Những thanh ghi này được xem như các file thanh ghi dự báo. Giá trị trong các file thanh ghi dự báo đượcliên kết với mỗi câu lệnh trong tập câu lệnh mở rộng qua việc sử dụng các toán hạng nguồn thêm. Toán hạng này chỉ rathanh ghi dự báo nào sẽ xác định khi nào sự hoạt động nên chỉnh sửa trạng thái bộ xử lý nếu giá trị trong một thanh ghi cụ thểlà một hoặc true câu lệnh sẽ thực hiện một cách bình thường, nếu giá trị là 0 hoặc false câu lệnh sẽ bị loại bỏ. giá trị thanh ghidự báo có thể được thiết lập bằng cách sử dụng các câu lệnh định nghĩa dự báo. Việc định nghĩa dự báo được sử dụng là kiếntrúc của HPL Playdoh. Có một câu lệnh định nghĩa dự báo cho mỗi sự so sánh trong tập các câu lệnh nguồn. Sự khác nhau

chủ yếu với các câu lệnh so sánh theo quy ước là những định nghĩa dự báo này phải có hai thanh ghi đích.và các thanh ghiđích của chúng là thanh ghi dự báo. Mẫu câu lệnh dự báo được chỉ ra ở dưới.

( ) _ , 2 , 1, 2type type in

 pred cmp Pout Pout scr scr P  < > < >

< >

Câu lệnh này ánh xạ giá trị Pout1 và Pout 2 theo sự so sánh với src1 và src 2 được khai báo bởi <cmp>. Sự so sánh <cmp> có thể là: bằng nhau (eq), không bằng nhau (ne), lớn hơn (gt)...Câu lệnh <type> được chỉ định cho dự báo đích. Các câulệnh định nghĩa dự báo cũng được dự báo như được khai báo bởi Pin.

Dự báo <type> xác định giá trị được viết tới thanh ghi dự báo đích dựa trên kết quả của việc so sánh và dự báo đầu vào,Pin. Đối với mỗi sự liên kết kết qủa và Pin, một trong ba hành động sau có thể thực hiện trên dự báo đích: Nó có thể viết 1,viết 0, hoặc không đổi. Có 6 loại dự báo rất hữu ích, không theo điêu kiện (U), (O) và AND và các thành phần bù của chúng.Bảng 42.1 chưa bảng sự thật cho các loại định nghĩa dự báo này, các thanh ghi dự báo đích không điều kiện luôn luôn đượcđịnh nghĩa mà không quan tâm đến giá trị của Pin và kết quả so sánh. Nếu giá trị Pin bằng 1 kết quả so sánh là được đặt vào

trong thành ghi dự báo hoặc phần bù của nó. Nếu không 0 sẽ được ghi vào thanh ghi dự báo. Các dự báo không điều kiệnđược sử dụng cho các khối, thứ được thực hiện trên một điều kiện đơn.

Bảng 42.1 Bảng sự thật cho dự báo

12

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 13/15

 Kiến trúc

Dự báo loại (O) là hữu ích khi việc thực hiện một khối có thể được cho phép bởi nhiều điều kiện chẳng hạn AND(&&) vàOR (||) trong C. Các thanh ghi dự báo đích loại OR được thiết lập nếu Pin bằng 1 và kết quả so sánh bằng 1; nếu khộng thanhghi dự báo đích không thay đổi. Chú ý rằng dự báo loại OR phải được khởi tạo bằng 0 trước khi chúng được định nghĩa và sửdụng. Tuy nhiên sau khi chúng được khởi tạo, các định nghĩa dự báo loại OR có thể được sử dụng một cách đồng thời và theo bất kỳ thứ tự nào trên cùng một thanh ghi dự báo. Điều này là đúng bởi vì dự báo loại OR hoặc là ghi 1 hoặc để nguyên giá trịthanh ghi không đổi, cho phép việc thực hiện các điều kiện logic OR. Dự báo loại AND là tương tự như dự báo loại OR. Cácthanh ghi dự báo đích loại AND không bị thay đổi. Hình 42.11một ví dụ đơn giản mô tả khái niệm về thực hiện được dự báo.Hình 42.11a chỉ ra một chương trình thông dụng” if- then-else”. Sự thể hiện dòng điều khiển liên quan của mã chương trìnhđược thể hiện ở hình 42.11b. Bằng cách sử dụng if-conversion mã trong hình 42.11b được chuyển đổi thành mã tronghình42.11c. Nhánh điều kiện ban đầu được chuyển đổi vào trong câu lệnh pred-eq.

Hình 42.11 chuỗi câu lệnh: (a) mã chương trình, (b) việc thực hiện, (c) thực hiện đựơc dự báo

Thanh ghi dự báo p1 được thiết lập để chỉ rằng nếu điều kiện A=B là đúng và p2 được thiết lập nếu điều kiện là sai.Thành phần ‘then ‘ của câu lệnh ‘if’ được dự báo trên p1 và thành phần else được dự báo ở p2. Pred-eq đơn giản quyết địnhkhi nào điều kiện hoặc sự loại bỏ các câu lệnh là đựơc thực hiện và đảm bảo rằng một trong hai thành phần không được thựchiện. Có một vài lợi ích hoạt động đối với các mã được dự báo trứơc. Đầu tiên, bộ vi xử lý không cần thiết tạo bất kỳ dự báonhánh nào vì tất cả các nhánh trong mã đã bị loại bỏ. Sự loại bỏ này liên quan đến rủi ro về dự báo nhánh sai. Nhưng quantrọng hơn các câu lệnh được dự báo có thể sử dụng khả năng thực hiện nhiều câu lệnh của bộ vi xử lý hiện đại và tránh cácrủi ro về dự báo nhánh nhầm.

Speculative Execution

Số lượng có thể của ILP trong các khối cơ bản là bị giới hạn rất nhiều trong các chương trình không số. Bởi vì bộ xử lý phải tối ưu hoá và sắp đặt các câu lệnh qua các mã code cơ bản để đạt được khả năng hoạt động cao hơn. Thêm vào đó các bộ xử lý tương lai phải đấu tranh với sự hoạt động tải trễ lâu và các lỗi cache trễ dài. Khi tải dữ liệu là cần thiết bởi các câulệnh phụ thuộc. Việc thực hiện bộ xử lý phải chờ cho đến khi truy cập cache hoàn thành.

Trong những hoàn cảnh này các máy không theo thứ tự sẽ sắp xêp lại dòng câu lệnh theo cách động để thực hiện các câulệnh độc lập. Thêm vào đó các máy không theo thứ tự có các ưu điểm trong việc thực hiện các câu lệnh mà theo các câu lệnhnhánh được dự báo chính xác.Tuy nhiên mô hình này yêu cầu mạch phức tạp tại do đó làm mất không gian của chip. Sự hoạtđộng tương tự cũng có thể đạt được bằng cách sử dụng phương pháp thời gian biên dịch tĩnh mà không cần logic không theothứ tự phức tạp. Sự suy xét thực hiện một công nghệ cho việc thực hiện các câu lệnh trước khi biết việc thực hiện của chungđược yêu cầu là một công nghệ quan trọng để khai thác ILP trong chương trình. Viêc suy xét hoạt động được biết như là chegiấu độ trễ bộ nhớ. Phương pháp này sử dụng sự hỗ trợ kiến trúc tập các câu lệnh được xem xét. Trình biên dịch sử dụng mãđể đạt được khả năng hoạt động tốt hơn theo một vài cách. Trước hết trong vùng mã nơi mà ILP tồn tại không nhiều để sửdụng toàn bộ các tài nguyên xử lý, các câu lệnh hữu ích có thể được thực hiện thứ 2, các câu lệnh tại vị trí ban đầu của cácchuỗi phụ thuộc dài có thể được thực hiện sớm để giảm việc tính toàn về các đường. Cuối cùng các câu lệnh trễ dài có thểđược khởi tạo sớm để đè lên việc thực hiện của chúng với các hoạt động hữu ích khác. hình 42.12 miêu tả một ví dụ đơn giảnvề code trước và sau quá trình chuyển đổi thời gian biên dịch là được thực hiện tới các lệnh tải trên nhánh điều kiện.

Hình 42.12a chỉ ra cách mà câu lệnh nhánh và sự thực hiện điều khiển luồng của nó định nghĩa một điều khiển phụ thuộcmà hạn chế sự hoạt động tải khỏi việc sắp đặt theo thứ tự sớm trong code. Trễ lỗi cache sẽ dừng bộ xử lý trừ khi cơ chế thựchiện không theo thứ tự được sử dụng. Tuy nhiên với các hỗ trợ này, hình 42.12b có thể được sử dụng để che giấu độ trễ hoạtđộng tải. Vấn đề giải quyết này yêu cầu tải phải được xem xét hoặc không lỗi. Một tải được xem xét sẽ không báo hiệu một

13

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 14/15

Sổ tay Cơ điện tử 

sự ngoại trừ về lỗi chẳng hạn đồng bộ để chỉ hoặc lỗi truy nhập khoảng trống địa chỉ. Thực chất các tải được coi như là imlặng đối với những sự xảy ra này. Câu lệnh kiểm tra thêm vào trong hình 42.12b cho phép những tín hiệu này được phát hiệnkhi viêc thực hiện ban đầu tìm thấy vị trí ban đầu của tải.

Hình 42.12 chuỗi câu lệnh : (a) thực hiện bình thường, (b) thực hiện có xem xét

Khi những đường khác của thực hiện nhánh xảy ra các tín hiệu in đậm như thế là không có nghĩa và có thể bỏ qua. Sửdụng cơ chế này tải có thể được đặt ở trên tất cả các sự phụ thuộc điều khiển đang tồn tại, cung cấp cho trình biên dich khảnăng che dấu độ trễ tải. Các chi tiết về trình biên dịch có thể được tìm thấy trong Ref9.

42.6 Những xu hướng trong công nghiệp

 Ngày nay, ngành công nghiệp vi xử lý là một trong những ngành phát triển mạnh nhất. Nhu cầu đòi hỏi cao của thị trườngđã khuyến khích sự cạnh tranh cao, lần lượt mang lại kết quả cao trong việc đổi mới công nghệ.

Những xu hướng của bộ vi xử lý trong máy vi tính

Xu hướng hiện tại của bộ vi xử lý trong máy vi tính bao gồm đường ống dẫn sâu, tần số đồng hồ cao, cung cấp tài lịêuhướng dẫn rộng rãi, suy đoán và thực không đúng thủ tục, thực thi các thuộc tính, các dạng dữ liệu tự nhiên, large on-chipcaches, khả năng con trỏ động và hỗ trợ cho bộ đa xử lý. Trong phạm vi của đường ống dẫn (pipelining), bộ vi xử lý IntelPentium II đường ống dẫn tương đương với hai lần độ sâu của những Pentium trước đó. Đường ống dẫn sâu (deep pipeline)của bộ vi xử lý Pentium II cho phép tần số đồng hồ có thể chạy nhanh hơn bộ Pentium. Về mặt hướng dẫn, bộ vi xử lý

Pentium II có thể giải mã và đưa ra đến 3 hướng dẫn X86 trong một vòng đồng hồ, so sánh với two-instruction issue bandwidth of Pentium. Pentium II đã đóng góp một số lượng chip quan trọng cho bộ đệm nhánh mục tiêu, những khu vựcriêng, và thực hiện sắp xếp lại bộ đệm những phần không đúng thủ tục và đưa ra trợ giúp cho lưu trữ. Những cấu trúc có tổchức đó cho phép bộ vi xử lý pentium II có thể thực hiện nhiều vấn đề linh họat, có tính chất suy đoán và những vấn đềkhông đúng thủ tục hơn là bộ Pentium thông thường. Nói riêng, pentium II có thể thực hiện đến 40 lệnh X86, cái đó chiếmnhiều thời gian hơn Pentium thông thường. Trong phạm vi của thuộc tính thực hiện, pentium II ủng hộ cho lệnh điều kiện diđộng, cái đó không thể có trong Pentium thông thường. Khuynh hướng đó được mở rộng ra bởi tự động tạo ra cấu trúc IA-64,nơi mà tất cả các lệnh có thể được thực hiện tùy theo các điều kiện dưới quá trình điều khiển của việc xác nhận đã được đăngký. Chính khả năng đó cho phép trong tương lai bộ vi xử lý thực hiện điều khiển nhiều chương trình ở mức độ cao nhanh hơnnhững bộ vi xử lý trước đây.

 Ngày nay, trong phạm vi của dạng dữ liệu, tài liệu hướng dẫn MMX của Intel đã trở thành đặc trưng chuẩn của tất cả các bộ vi xử lý X86. Những tài liệu hướng dẫn đó mang lại những lợi ích thực tế đó là những mục dữ liệu đa phương tiện đó làmiêu tả đặc trưng cùng với số lượng bit nhỏ hơn (8-16 bit) so với bề rộng của đường dữ liệu dạng unteger (32-64 bit). Nhờ 

trực giác, sự vận hành tương tự như vậy thường được lặp lại trên tất cả các mục cơ sở dữ liệu trong tất cả các ứng úng đa phương tiện - cấu trúc của MMX cho thấy rằng mỗi chỉ dẫn MMX đều thực hiện sự vận hành giống nhau trên một vài mục cơ sở dữ liệu đa phương tiện được gắn với một số nguyên. Điều này cho phép mỗi chỉ dẫn MMX đồng thời xử lý một vài mụcdữ liệu để đạt được tốc độ đáng kể trong các ứng dụng được quan tâm. Năm 1998, AMD đưa ra những chỉ dẫn 3Dnow! đểthực hiện những thao tác cần thiết của các ứng dụng đồ họa 3D. Những chỉ dẫn 3DNow được thiết kế dựa trên quan niệm chorằng mục cơ sở dữ liệu đồ họa 3D thường được thể hiện trong định dạng con trỏ động chính xác đơn lẻ và chúng không yêucầu sự làm tròn số phức tạp và khả năng quản lý bộ nhớ ngoại lệ như trong định dạng tiêu chuẩn IEEE. Do đó người ta khôngthể ghép hai dữ liệu con trỏ động thành một thanh ghi con trỏ động có độ chính xác gấp đôi để dùng trong các ứng dụng đồhọa yêu cầu xử lý con trỏ động yêu cầu hiệu quả hơn. Cần lưu ý rằng MMX và 3DNow! giống nhau về mặt khái niệm. Chúngđược ứng dụng trong các miềm dạng nguyên và con trỏ động. Trong lĩnh vực on-chip caches, những kỹ thuật thông thườngđược sử dụng trong bộ vi xử lý máy tính là nhằm mở rộng các caches bậc nhất hoặc để ghép caches bậc hai và đôi khi caches bậc 3 on chip. Ví dụ, bộ vi xử lý ADM K7 có caches chỉ dẫn 64 Kb bậc nhất và một caches cơ sở dữ liệu 64 Kb bậc nhất. Những caches bậc nhất này có kích thước lớn hơn đáng kể so với caches của thế hệ trước. Một ví dụ khác, bộ vi xử lý Intel

Celeron có một chỉ dẫn kết hợp bậc hai 128 Kb và cache cơ sở dữ liệu. Những caches lớn này được hỗ trợ bởi mật độ chipngày càng tăng cho phép xây dưng nhiều bóng bán dẫn trên chíp. Bộ vi xử lý Compaq Alpha 21364 có một cache chỉ dẫn64Kb bậc nhất, một cache cơ sở dữ liệu 64Kb bậc nhất và một cache kết hợp 1,5Mb bậc hai. Xét về mặt khả năng con trỏđộng, nhìn chung các bộ vi xử lý máy tính có thể thực hiện các thao tác con trỏ động mạng hơn so với những thế hệ vi xử lý

14

8/6/2019 sổ tay cdt Chuong 42-VXL

http://slidepdf.com/reader/full/so-tay-cdt-chuong-42-vxl 15/15

 Kiến trúc

trước đó. Ví dụ, thế hệ Pentium II đạt được tốc độ xử lý con trỏ động cao hơn vài lần so với thế hệ Pentium trước đó. Một vídụ khác, phần lớn các bộ vi xử lý RISC ngày nay có được tốc độ xử lý con trỏ động mà các siêu CPU đối thủ đã có được chỉcách đây vài năm. Do nhu cầu ngày càng gia tăng của các máy chủ đa xử lý, rất nhiều bộ vi xử lý ngày nay đã hỗ trợ giaothức giao thức cache coherence. Ví dụ bộ vi xử lý AMD K7 hỗ trợ trực tiếp cho những vận hành đa xử lý liên tục khi nhiều bộ vi xử lý được nối với bus hệ thống. Đây là khả năng mà phiên bản AMD K6 không có được.

Xu hướng của vi xử lý nhúng

Có ba xu hướng phát triển tiêu biểu của bộ vi xử lý nhúng. Xu hướng thứ nhất là tích hợp lõi DSP cùng với một lõiCPU/Bộ điều khiển nhúng. Các ứng dụng nhúng ngày càng cần các chức năng DSP như chức năng mã hóa cơ sở dữ liệutrong đĩa và cân bằng hóa tín hiệu trong các giao tiếp không dây. Những chức năng này làm tăng chất lượng phục vụ của cácsản phẩm máy tính. Tại diễn đàn vi xử lý nhúng năm 1998, các hãng ARM, Hitachi, và Siemens đều công bố sản phẩm ứngdụng DSP và vi xử lý nhúng.

Có ba cách tiếp cận về sự tích hợp của DSP và CPU nhúng. Cách thứ nhất là chỉ đơn giản là ghép hai bộ phân táchrời nhau vào một chip. Ưu điểm của cách này là nó đơn giản hóa quá trình phát triển của vi xử lý. Hai bộ phận này thườngđược lấy ra từ các thiết kế hiện có. Công cụ phát triển phần mềm có thể được lấy trực tiếp từ môi trường hỗ trợ phần mềmtương ứng của mỗi đơn vị. Nhược điểm là các nhà thiết kế cần phải xử lý 2 đơn vị phần cứng độc lập và hai môi trường pháttriển phần mềm. Điều này thường làm phức tạp sự phát triển phần mềm và sự kiểm định trong máy tính. Cách tiếp cận thứ hailà tích hợp DSP và CPU nhúng nhằm thêm DSP coi như là bộ đồng xử lý trong CPU. Cái CPU này đem tất cả các chỉ dẫn vàmang các chỉ dẫn DSP tới bộ đồng xử lý. Phần cứng được thiết kế phức tạp hơn so với cách tiếp cận thứ nhất do nhu cầughép nối 2 đơn vị gần nhau hơn, đặc biệt trong việc truy cập bộ nhớ. Môi trường phát triển phần mềm cũng cần được chỉnh

sửa lại để hỗ trợ mô hình tương tác đồng xử lý. Ưu điểm là các nhà thiết kế phần mềm ngày nay được tiếp cận với một môitrường cố kết hơn rất nhiều. Cách tiếp cận thứ 3 là tích hợp DSP và CPU nhúng nhằm thêm các chỉ dẫn DSP vào một cấu trúc bộ hướng dẫn CPU. Việc làm này thường yêu cầu phải có một thiết kế mới nhằm thực hiện cấu trúc bộ xử lý tích hợp hoàntoàn. Xu hướng thứ hai trong bộ vi xử lý nhúng là hỗ trợ sự phát triển của các giải pháp chip đơn lẻ trong các thị trường rộnglớn hơn. Rất nhiều đại lý cung cấp bộ vi xử lý nhúng đưa ra các thiết kế được cấp phép và được tích hợp trong một chip lớnhơn bao gồm thiết bị ngoại vi I/O và các mạch tích hợp ứng dụng đặc biệt ASIC. Mô hình này được nhắc tới như một thiết kếchip trong hệ thống. Một bộ vi xử lý được thiết kế để thực hiện các chức năng trong một hệ thống như vậy thường được coinhư một lõi được cấp phép. Xu hướng phát triển thứ ba của bộ vi xử lý nhúng là việc ứng dụng các kỹ thuật vận hành cao.Trước đây các bộ vi xử lý nhúng rất chậm trong việc chấp nhận cấu trúc vận hành cao và kỹ thuật thực thi. Chúng cũng có xuhướng tái sử dụng các công cụ phát triển phần mềm như trình biên dịch trong miền vi xử lý máy tính. Tuy nhiên, do sự giatăng nhanh chóng về các chức năng mong muốn trong thị trường nhúng các nhà cung cấp bộ vi xử lý nhúng đang khẩn trươngứng dụng các công nghệ vận hành cao. Xu hướng này đặc biệt được thấy rất rõ trong các bộ vi xử lý DSP. Các hãng TexasInstruments, Motorola/Lucent, và Analog Devices đều công bố bộ vi xử lý EPIC DSP trước bộ vi xử lý Intel/HP IA-64 EPIC.

Xu hướng thị trường của bộ vi xử lý

 Người đọc có quan tâm đến những xư hướng thị trường của bộ vi xử lý có thể tham khảo trong các tài liệu được xuất bảnthường kỳ Microprocessor Report, do MicroDesign Resources (www.MDRonline.com) phát hành. Trong mỗi lần xuất bản, có các tổng kết các vi kiến trúc đặc trưng, tính chất vật lý, khả năng của bộ vi xử lý.

Tài liệu tham khảo

[1] Turley, J., RISC volume gains but 68K still reigns, Microprocessor Report, vol. 12, pp. 14–18, Jan. 1998.

[2] Hennessy, J.L. and Patterson, D.A., Computer Architecture A Quantitative Approach, Morgan Kaufman,San Francisco, CA, 1990.

[3] Smith, J.E., A study of branch prediction strategies, Proceedings of the 8th International Symposium on

Computer Architecture,  pp. 135–14, May 1981.[4] Hwu, W.W. and Conte, T.M., The susceptibility of programs to context switching, IEEE Transactions on

Computers, vol. C-43, pp. 993–1003, Sept. 1994.

[5] Gwennap, L., Klamath extends P6 family, Microprocessor Report, Vol. 1, pp. 1–9, February 1997.

[6] Tomasulo, R.M., An efficient algorithm for exploiting multiple arithmetic units, IBM Journal of Research and Development, vol. 11, pp. 25–33, Jan. 1967.

[7] Allen, J.R. et al., Conversion of control dependence to data dependence, Proceedings of the 10th ACMSymposium on Principles of Programming Languages, pp. 177–189, Jan. 1983.

[8] Kathail, V., Schlansker, M.S., and Rau, B.R., HPL PlayDoh architecture specification: Version 1.0,Tech. Rep. HPL-93-80, Hewlett-Packard Laboratories, Palo Alto, CA, Feb. 1994.

[9] Mahlke, S.A. et al., Sentinel scheduling: a model for compiler-controlled speculative execution, ACMTransactions

on Computer Systems, vol. 11, Nov. 1993.[10] Embedded Microprocessor Forum (San Jose, CA), Oct. 1998.

15