Decode - Máy gì giờ cũng cần CPU, nhưng thiết kế ra CPU như thế nào? (P.2)

P.W
20/2/2025 11:44Phản hồi: 0
Decode - Máy gì giờ cũng cần CPU, nhưng thiết kế ra CPU như thế nào? (P.2)
Ở phần 1 của loạt bài, chúng ta đã thấy được cách CPU dịch những đoạn code lập trình từ vô vàn những ngôn ngữ lập trình bậc cao trở thành những đoạn ký tự nhị phân chỉ có số 0 và số 1, để con chip tiến hành thực hiện những lệnh tính toán của các chỉ thị và lớn hơn là những tác vụ. Rồi kế đến là cách vận hành sắp xếp những phép tính và chỉ thị sao cho hiệu năng đạt mức tối đa, và cả cách CPU dự đoán chỉ thị, cũng như truy xuất dữ liệu từ bộ nhớ RAM và bộ nhớ đệm.

Còn trong phần 2, sẽ là cơ bản quy trình thiết kế ra một con chip vi xử lý.

Phần 1: Cơ bản kiến trúc chip xử lý máy vi tính
Phần 2: Quy trình thiết kế chip CPU
Phần 3: Dàn bề mặt và quang khắc chip CPU
Phần 4: Xu hướng tương lai, và những chủ đề nóng của kiến trúc chip xử lý máy tính


Transistor: Kết cấu cơ bản của mọi chip vi xử lý


Mọi con chip bán dẫn, không riêng gì CPU trong máy tính của anh em, đều được cấu thành từ những transistor. Giờ có vô vàn công nghệ transistor để xử lý tín hiệu thông tin dưới dạng luồng electron có hướng, nhưng dễ hiểu nhất, chúng là những công tắc siêu nhỏ có thể điều khiển được với 3 điện cực. Khi mở điện cực, dòng điện được phép chạy qua, và đóng lại thì điện không chạy qua được, chẳng khác gì công tắc đèn trong phòng anh em, chỉ là nhỏ hơn rất nhiều, nhanh hơn rất nhiều và được điều khiển bằng tín hiệu điện.

Chip vi xử lý hiện đại ứng dụng hai dạng transistor chủ yếu: pMOS và nMOS.

Transistor dạng nMOS cho phép dòng điện chạy qua khi cổng transistor được đặt ở ngưỡng điện thế cao, còn pMOS cho phép dòng điện chạy qua khi cổng transistor được đặt ở ngưỡng điện thế thấp. Kết hợp hai dạng transistor này, chúng ta có thể tạo ra những cổng logic CMOS. Cách những transistor vận hành trên khía cạnh vật lý, chúng ta sẽ bàn ở phần 3, nơi các kỹ sư và nhà nghiên cứu tìm cách thiết kế những chip vi xử lý và sản xuất chúng. Khi ấy cách vận hành cực kỳ chi tiết và phức tạp của transistor sẽ được đề cập cụ thể.

Còn trong khi đó, về mặt lý thuyết, cổng logic là một phần đơn giản của transistor để nhận dữ liệu đầu vào, thực hiện phép tính, tạo ra kết quả.

2019-05-10-image-p-1100.webp

Lấy ví dụ như mấy hàm logic anh em học hồi đại học hay hồi học Tin học ở trường trung học phổ thông, cổng AND chỉ mở khi mọi giá trị dữ liệu là 1. Nếu có inverter, tức là cổng NOT, nó chỉ mở khi giá trị là 0. Kết hợp hai cổng này thì có cổng NAND (not AND). Rồi phức tạp hơn thì có OR, NOR, XOR và XNOR, mỗi cổng có một công năng logic khác nhau.

Với ví dụ cổng NOT và cổng NAND trên đây, ở khía cạnh vật lý, hai cổng xử lý thông tin cơ bản sẽ được vận hành bằng các transistor. Kết hợp những hàm logic này với hai kết cấu transistor nMOS và pMOS, chúng ta sẽ có giải pháp vi xử lý cơ bản dễ hiểu nhất:

Với cổng inverter, tức là cổng NOT, phía trên là transistor pMOS, kết nối với đường điện. Phía dưới là transistor nMOS, nối đất. Vì pMOS chỉ dẫn điện khi đầu vào giá trị 0, và nMOS dẫn điện khi đầu vào giá trị 1, tín hiệu đầu ra luôn luôn đảo ngược so với tín hiệu đầu vào. Anh em để ý, transistor pMOS được thể hiện bằng ký hiệu đường kẻ dọc với dấu tròn, còn nMOS chỉ là đường kẻ dọc.

Quảng cáo



Tương tự như vậy, cổng NAND sẽ cần 4 transistor. Và chúng sẽ tính toán giá trị đầu ra với một điều kiện duy nhất, ít nhất một trong những giá trị đầu vào là 0. Phức tạp hơn sẽ là những cổng OR hay XOR…

Từ cổng logic tới cụm transistor vận hành xử lý


Với những viên gạch ở mức độ cơ bản đến tuyệt đối, tức là những cổng logic được đề cập ở mục trên, thực sự cũng khó để chúng ta mường tượng biến chúng thành một con chip vi xử lý vận hành toàn bộ hệ thống máy tính như thế nào.

Quá trình thiết kế ra một CPU sẽ cần tới việc kết hợp nhiều cổng logic thành một cụm thiết bị vận hành một nhiệm vụ, một hàm cụ thể. Những cụm này sau đó được kết nối lại với nhau để tạo ra những đơn vị có chức năng phức tạp hơn. Cứ vài bước kết hợp như vậy là chúng ta có một con chip vi xử lý hoàn chỉnh. Quá trình tích hợp những phần đơn lẻ ấy từ trước tới nay thường không có nhiều thay đổi. Chỉ có quy mô và mật độ transistor trên một die bán dẫn hiện giờ đạt mức hàng chục, hàng trăm tỷ.

2019-05-10-image-2-p-1100.webp

Quay trở lại với những giải thích đơn giản. Hình trên đây là một cụm mạch tính cộng chiều dài 1-bit. Mạch này nhận 3 dữ liệu đầu vào: Giá trị A, B và Carry-In, và tạo ra hai giá trị đầu ra: Sum và Carry-Out. Thiết kế cơ bản cần 5 cổng logic, và muốn nâng chiều dài bit mà phép tính cộng có thể được thực hiện, chỉ việc ghép vài mạch như dưới đây lại với nhau. Đó là cơ bản, còn hiện tại, những thiết kế chip mới thường tối ưu tín hiệu logic và carry để chuyển kết quả tính sang mạch tính khác.

Quảng cáo


Những CPU hiện đại trong máy tính của anh em sử dụng những module cộng phức tạp hơn nhiều, không hề dễ hiểu như ví dụ mạch tính cộng trong hình trên. Bên cạnh mạch tính cộng, CPU giờ còn phải có những mạch tính chia, nhân, không chỉ số thực mà còn cả số thực dấu phẩy động…

Kết hợp hàng loạt những cổng logic để vận hành vài hàm dựa trên dữ liệu đầu vào được gọi là logic kết hợp. Bên cạnh logic kết hợp, vẫn cần một thứ nữa, gọi là logic tuần tự, để lưu trữ dữ liệu, và ghi nhớ thực trạng vận hành xử lý các chỉ thị, tác vụ, hay lưu trữ dữ liệu. Rồi đến lúc ấy, chúng ta sẽ cần SRAM và DRAM.

SRAM và DRAM


Những module xử lý logic tuần tự được xây dựng bằng cách kết nối một cách cẩn thận những cổng inverter và những cổng logic, để tín hiệu đầu ra được trả ngược lại điện cực input của cổng logic. Quá trình này được dùng để lưu trữ 1 bit dữ liệu, và được gọi là SRAM - Static RAM.

Ví dụ dưới đây là cách cơ bản để ứng dụng một cụm SRAM lưu trữ 1 bit dữ liệu, sử dụng 6 transistor. Tín hiệu đầu vào trên cùng viết tắt là WL - Word Line, là địa chỉ. Khi nó được kích hoạt, dữ liệu trong cell nhớ 1 bit này sẽ được gửi sang BL - Bit Line. Đầu ra BLB là viết tắt của Bit Line Bar, giá trị đảo ngược của Bit Line. Anh em để ý trong hình, vẫn là hai dạng transistor cơ bản pMOS và nMOS. Cụm M3 và M1 tạo ra cổng inverter, tương tự là M4 kết hợp với M2.

2019-05-10-image-4-p.webp

Những cụm SRAM như trong hình trên được nhân lên hàng chục nghìn lần để tạo ra bộ nhớ đệm, và những thanh ghi trong chip CPU. Chúng cực kỳ ổn định, nhưng để lưu trữ đúng 1 bit dữ liệu, cần từ 6 đến 8 transistor. Đó là lý do vì sao bộ nhớ đệm trên CPU và thanh ghi gia công cực kỳ đắt đỏ, tốn diện tích và cực kỳ phức tạp.

Còn trong khi đó, DRAM - Dynamic RAM thì lưu trữ dữ liệu trong một tụ điện tí hon chứ không phải lưu trữ bằng cổng logic như SRAM. Gọi là bộ nhớ truy xuất ngẫu nhiên động, là vì điện áp của tụ điện có thể thay đổi vì không được nối trực tiếp với nguồn. Một transistor đơn lẻ có thể được dùng để truy cập dữ liệu lưu trữ trong tụ.

2019-05-10-image-5-p.webp

Vì DRAM chỉ cần 1 transistor để lưu trữ 1 bit dữ liệu, và có thể ứng dụng ở quy mô rất lớn, nên bộ nhớ DRAM có thể được ứng dụng ở mật độ cao, chi phí gia công rẻ. Tuy nhiên vấn đề lớn nhất là điện áp trong tụ rất nhỏ, phải làm mới thường xuyên. Đó là lý do tắt máy tính, dữ liệu lưu trữ trong RAM sẽ biến mất do tụ xả điện.

Đương nhiên AMD, Intel hay Nvidia không bao giờ hé lộ bản vẽ chi tiết mô tả cách chip xử lý của họ vận hành. Nên chúng ta sẽ chỉ có thể mô tả cách CPU hoạt động ở tầng cơ bản nhất bằng những bản vẽ lý thuyết, mô tả những cổng logic, những module nhớ và những transistor độc lập.

Tín hiệu nhịp và xung nhịp


Trên đây là những gì cơ bản dễ hiểu nhất về cách những transistor trong một chip CPU được ứng dụng, kết hợp với nhau để tính toán. Giờ là lúc tìm hiểu cách tất cả chúng kết nối với nhau ra sao, và đồng bộ hóa tín hiệu xử lý. Mọi bộ phận then chốt trong một chip vi xử lý đều được kết nối với tín hiệu nhịp, thay đổi ở mức cao và thấp trong một chu kỳ được xác định trước, gọi là xung nhịp.

Cụm xử lý logic tính toán trong CPU thường điều chỉnh giá trị nhị phân, thực hiện các phép tính khi tín hiệu nhịp đi từ thấp tới cao. Bằng cách đồng bộ hóa mọi thứ, các kỹ sư sẽ đảm bảo dữ liệu đến đúng thời điểm, ngăn chặn việc CPU xử lý lỗi.

2025-02-12-image-j-1100.webp

Lý thuyết đơn giản, nâng xung nhịp là sẽ giúp hiệu năng xử lý của CPU tăng lên. Cải thiện hiệu năng này đến từ việc bật tắt transistor, cho tới cụm xử lý logic bên trong CPU nhanh hơn tốc độ nó được thiết kế để vận hành ban đầu. Khi mỗi giây, các transistor vận hành nhiều tín hiệu nhịp hơn, nhiều chỉ thị và tác vụ sẽ được thực hiện hơn. Vậy là hiệu năng máy tăng.

Tuy nhiên điều này, thứ mà anh em quen thuộc hơn với khái niệm overclock, chỉ có giá trị đến một ngưỡng nhất định.

Hầu hết CPU máy tính cá nhân hiện đại vận hành ở xung nhịp từ 3 tới 5 GHz. Nguyên một thập kỷ qua, ngưỡng này gần như không thay đổi nhiều. Lý do là tốc độ xử lý của một CPU bị giới hạn bởi phần vận hành chậm nhất bên trong die bán dẫn của nó. Ở cuối mỗi tín hiệu nhịp, mọi phần của một chip CPU phải hoàn thành hết tác vụ chúng đang xử lý. Nếu có phần nào vẫn đang tính toán, thì tín hiệu nhịp quá nhanh, và CPU sẽ không vận hành hiệu quả.

cpu-mainboard.jpg

Các kỹ sư thiết kế CPU gọi phần vận hành chậm nhất trong con chip họ thiết kế là Critical Path. Phần này sẽ quyết định xem CPU sẽ chạy được ở xung nhịp tối đa là bao nhiêu. Trên ngưỡng đó, transistor không thể vận hành đủ nhanh, thế là hoặc CPU lỗi, hoặc kết quả các phép tính bị sai.

Tăng điện áp đầu vào cho chip vi xử lý thường sẽ giúp transistor bật tắt nhanh hơn, nhưng cũng chỉ tới một ngưỡng nhất định. Nếu điện áp quá cao cấp cho CPU, có khả năng chip sẽ quá nhiệt hoặc tệ hơn là bị cháy. Và như anh em đều để ý, nâng điện áp để nâng xung nhịp luôn tạo ra một hệ thống vận hành nóng hơn và tốn điện hơn. Hiệu năng xử lý của CPU luôn tỷ lệ thuận với hai giá trị: Xung nhịp và bình phương của điện áp. Đấy là lúc phải ngồi tính toán tổng điện năng tiêu thụ của một CPU, từ đó thiết kế hệ thống quản lý điện áp.

Quản lý điện áp và hiệu năng


Đây là phần cực kỳ quan trọng của quá trình thiết kế chip vi xử lý, tới mức trong một số trường hợp, một nửa số chân tiếp xúc vật lý của chip CPU chỉ được dùng để cấp nguồn hoặc nối đất cho die silicon. Có những con chip ngốn tới 150 amp điện ở hiệu năng tối đa. Và cường độ dòng điện này phải được quản lý một cách cực kỳ cẩn trọng. Vì diện tích die CPU cực nhỏ, nên tính trung bình, một con chip vi xử lý máy tính tạo ra lượng nhiệt trên diện tích bề mặt cao hơn cả một lò phản ứng hạt nhân.

Tín hiệu nhịp trong những CPU hiện đại chiếm chừng 30 đến 40% tổng tiêu thụ điện năng của con chip, vì chúng cực kỳ phức tạp, phải điều khiển nhiều phần của con chip cùng một lúc. Để tiết kiệm năng lượng, hầu hết những thiết kế TDP thấp đều có khả năng tắt một phần của die bán dẫn nếu chúng không được giao nhiệm vụ xử lý. Để tắt chúng đi, có hai giải pháp. Một là Clock Gating, tắt tín hiệu nhịp điều khiển transistor. Hai là Power Gating, ngắt hoàn toàn nguồn điện đến vùng transistor.

54046853928-af74c4271c-k.jpg

Xung nhịp và tín hiệu nhịp cũng là một thử thách khi thiết kế chip vi xử lý, đơn giản vì khi tăng xung nhịp, giới hạn vật lý bắt đầu xuất hiện. Kể cả khi tốc độ ánh sáng là thứ gần như tuyệt đối, nhưng vẫn chưa đủ nhanh đối với những vi xử lý mạnh nhất hiện tại. Nếu tín hiệu nhịp được gửi từ đầu này tới đầu kia con chip, tới thời điểm tín hiệu đến đích, toàn bộ con chip sẽ không vận hành đồng bộ.

Và để đảm bảo toàn bộ mọi phần của die silicon đồng bộ về mặt thời gian xử lý, tín hiệu nhịp được luân chuyển thông qua kết cấu như trong hình trên, gọi là H-tree. Kết cấu này đảm bảo mọi vị trí ở góc die silicon đều có khoảng cách đồng nhất đến trung tâm của con chip, đảm bảo toàn bộ CPU vận hành đồng bộ:

2019-04-18-image-p.webp

Về mặt hiệu năng, những CPU hiện đại càng lúc càng tốn tiện. Để giải quyết vấn đề này, nhiều kỹ sư và nhiều hãng đang ứng dụng thiết kế chiplet, kết hợp và nối nhiều die silicon lại với nhau để tạo ra một con chip lớn, bên cạnh việc tối ưu hiệu năng trên từng die chip riêng lẻ. Thay vì nhồi hết mọi phần transistor xử lý lên một die monolithic, thì những sản phẩm như AMD Ryzen chọn cách gia công từng phần nhỏ và kết nối chúng lại với nhau, chẳng hạn như những cụm nhân xử lý logic tiết kiệm điện xung nhịp thấp, đặt cạnh những cụm nhân hiệu năng cao, xung cao, tốn điện.

Cách thiết kế CPU dạng chiplet cho phép mọi phần cấu thành con chip được hưởng lợi từ những tiến trình gia công bán dẫn mới nhất, đảm bảo tỉ lệ chip đạt chuẩn, và cho phép nhiều phần cùng ghép lại với nhau trong cùng một sản phẩm thương mại.

Thiết kế CPU như thế nào?


Một sự thật rõ ràng, thiết kế thủ công từng transistor, ghép chúng thành từng cụm mạch tính cộng, tính nhân, tính chia, rồi đẩy quy mô con chip lên gấp hàng chục tỷ lần là thứ cực kỳ tốn thời gian và công sức. Rồi chưa kể tới chuyện phải thiết kế cả cụm transistor xử lý tín hiệu nhịp, kết nối điện, và cả những kết nối để CPU vận hành với phần còn lại của cấu hình thiết bị, từ máy tính đến smartphone nữa…

Đành rằng AMD, Qualcomm, Apple, Intel hay Nvidia có hàng nghìn kỹ sư đẳng cấp, nhưng vẫn không thể nào thiết kế bằng tay, thủ công từng chi tiết, từng khía cạnh của một con chip xử lý được. Để tạo ra một sản phẩm nhỏ bằng móng tay nhưng trên đó là hàng chục, hàng trăm tỷ transistor, mọi hãng đều cần những công cụ cao cấp để tạo ra thiết kế và bản vẽ cho họ.

2025-02-12-image-2-j-1100.webp

Những công cụ này, chẳng hạn những phần mềm do Synopsys phát triển và bán cho các hãng, thường sẽ nhận lệnh từ con người, hiểu những yêu cầu mô tả từ các kỹ sư, rằng mỗi cụm transistor phải làm gì, và phần mềm máy tính cũng như công cụ tự động sẽ tạo ra thiết kế phần cứng tối ưu để đảm bảo những yêu cầu đó.

Hiện tại đang có một xu hướng gọi là HLS - High Level Synthesis. Nó cho phép các nhà phát triển chip xử lý và các kỹ sư mô tả chi tiết tính năng họ muốn dưới dạng mã lập trình, rồi để máy tính tự tìm ra cách ứng dụng tối ưu những tính năng ấy dưới dạng bản vẽ phần cứng. Cách thiết kế có phần trừu tượng này không chỉ rút ngắn thời gian phát triển kiến trúc chip xử lý, mà còn tạo ra sản phẩm ứng dụng và tối ưu sản phẩm ở quy mô lớn.

Gần đây nhất, những kỹ thuật thiết kế chip xử lý dựa trên mô hình AI đã bắt đầu thay đổi quy trình phát triển những kiến trúc chip mới. Google, Nvidia hay Synopsys đã bắt đầu tích hợp mô hình máy học để phục vụ hỗ trợ con người thiết kế bố cục chip xử lý và thiết kế bản vẽ. Nhờ đó, những thiết kế với hàng tỷ transistor có thể được tạo ra với khoảng thời gian ngắn nhất có thể.

Với AI, hiện tại các kỹ sư đã có thể tối ưu điện năng tiêu thụ của chip, phân tích tốc độ xử lý, và nhận diện lỗi một cách tự động, tức là chưa cần quang khắc ra con chip thật, các kỹ sư đã có thể sửa lỗi ngay trên bản vẽ thiết kế.

Quá trình xác thực thiết kế CPU


Cũng giống như bạn có thể định nghĩa chương trình máy tính thông qua những dòng code, các nhà thiết kế cũng có thể xác thực phần cứng thông qua những dòng code.

Các ngôn ngữ lập trình như Verilog và VHDL cho phép các nhà thiết kế phần cứng thể hiện chức năng của bất kỳ thiết kế chip xử lý nào họ đang tạo ra. Quá trình mô phỏng và xác thực được thực hiện trên các bản vẽ thiết kế, và nếu mọi thứ đều ổn, chúng có thể được tổng hợp thành các transistor cụ thể, những thứ sẽ tạo nên một phần hoặc toàn bộ con chip.

Mặc dù quá trình xác thực có vẻ không ấn tượng như thiết kế bộ nhớ đệm hoặc lõi mới, nhưng tầm quan trọng của nó cao hơn đáng kể.

VHDL-Projects-for-Engineering-Students.jpg

Việc xác thực một thiết kế mới thường tốn nhiều thời gian và tiền bạc hơn nhiều so với việc xây dựng chính bản thân bản vẽ con chip CPU. Các công ty dành nhiều thời gian và tiền bạc cho việc xác thực thiết kế chip, vì một khi con chip được đưa vào sản xuất, sẽ không có cách nào để sửa nó nữa. Với phần mềm, anh em có thể phát hành bản vá, nhưng phần cứng thì không vá được.

Ví dụ, Intel đã gặp lỗi trong cụm transistor chia dấu phẩy động của một số chip Pentium vào cuối những năm 1990, cái giá mà họ phải trả tương đương 2 tỷ USD ngày nay. Ngược lại, chúng ta đã thấy nhiều trường hợp lỗi bảo mật trong chip trong thập kỷ qua, một số trong số đó đã được khắc phục bằng các bản cập nhật microcode và firmware do nhà sản xuất CPU tung ra.

Tuy nhiên, những bản sửa lỗi này phải trả giá bằng cả hai thứ: Hiệu năng của chip giảm, hoặc/và danh tiếng thương hiệu bị ảnh hưởng tiêu cực.

image-asset.jpeg

Anh em có thể sẽ thấy khó hiểu, tại sao một con chip có thể có tới hàng tỷ transistor, và tất cả chúng có chức năng gì? Khi anh em phân chia con chip thành các thành phần bên trong riêng lẻ, mọi việc sẽ dễ dàng hơn một chút. Các transistor tạo nên các cổng logic, các cổng logic được kết hợp thành các đơn vị chức năng, dùng để thực hiện một nhiệm vụ cụ thể, và các đơn vị chức năng này được kết nối với nhau để tạo thành kiến trúc chip vi xử lý.

Phần lớn công việc thiết kế được thực hiện bằng phần mềm tự động hóa và với các công cụ do AI điều khiển hiện đang đẩy nhanh các khía cạnh chính của quá trình phát triển chip, tính phức tạp của các bộ xử lý hiện đại tiếp tục tăng lên.

Theo Techspot
Chia sẻ

Xu hướng

Xu hướng

Bài mới








  • Chịu trách nhiệm nội dung: Trần Mạnh Hiệp
  • © 2025 Công ty Cổ phần MXH Tinh Tế
  • Địa chỉ: Số 70 Bà Huyện Thanh Quan, P. Võ Thị Sáu, Quận 3, TPHCM
  • Số điện thoại: 02822460095
  • MST: 0313255119
  • Giấy phép thiết lập MXH số 11/GP-BTTTT, Ký ngày: 08/01/2019