Nintendo Entertainment System NES huyền thoại, biểu tượng của ngành công nghiệp game 8-bit
Game

Kiến Trúc Phần Cứng Nintendo NES: Hé Lộ Bí Mật Đằng Sau Huyền Thoại Game 8-bit

Nintendo Entertainment System (NES) không chỉ là một cỗ máy chơi game đơn thuần; nó là một kiệt tác kỹ thuật với kiến trúc mô-đun độc đáo, khác biệt hoàn toàn so với các console cùng thời. Tại trung tâm của NES là một biến thể tùy chỉnh của bộ vi xử lý MOS Technology 6502, nhưng điều thực sự khiến nó nổi bật chính là cách các thành phần này phối hợp với nhau một cách linh hoạt. Thay vì tích hợp tất cả chức năng vào bo mạch chủ, kiến trúc NES cho phép các cartridge game trở thành một phần mở rộng của hệ thống, đảm nhiệm nhiều tác vụ mà các console khác hardwire.

Chính sự linh hoạt này đã mang lại cho các nhà phát triển không gian sáng tạo vô tận, giúp họ phát hành một số tựa game kinh điển nhất thời đại và đảm bảo NES giữ vững vị thế trên thị trường game gần một thập kỷ. Ngay cả 40 năm sau, sự tinh vi trong thiết kế này vẫn được cộng đồng công nghệ khám phá, thậm chí có người đã thành công chạy nền tảng .NET trên phần cứng NES gốc.

Trong bài viết này, congnghehot.net sẽ cùng bạn đi sâu vào cách kiến trúc NES được thiết kế, phân tích các thành phần cốt lõi và khám phá cơ chế hoạt động phối hợp để mang đến trải nghiệm chơi game 8-bit mang tính biểu tượng, định hình cả một thế hệ game thủ và ngành công nghiệp game.

Nintendo Entertainment System NES huyền thoại, biểu tượng của ngành công nghiệp game 8-bitNintendo Entertainment System NES huyền thoại, biểu tượng của ngành công nghiệp game 8-bit

Giải Mã Kiến Trúc NES: Ba Nhóm Thành Phần Đồng Bộ

Kiến trúc của Nintendo NES có thể được chia thành ba nhóm thành phần chính hoạt động đồng bộ: các thành phần liên quan đến CPU, các thành phần liên quan đến PPU và các thành phần đặc trưng của cartridge. Cùng nhau, ba nhóm này xử lý logic game, hiển thị hình ảnh và cung cấp các cải tiến dành riêng cho từng trò chơi, tất cả đều giao tiếp thông qua một hệ thống bus được điều phối chặt chẽ.

Bằng cách “đẩy” một số khả năng xử lý sang cartridge, Nintendo đã giữ cho giá thành của console ở mức phải chăng, đồng thời trao quyền cho các nhà phát triển để vượt qua giới hạn phần cứng với mỗi tựa game mới, từ đó kéo dài tuổi thọ đáng kinh ngạc của hệ thống.

  • Nhóm liên quan đến CPU bao gồm bộ xử lý trung tâm (CPU), bộ xử lý âm thanh (APU) và một chip RAM tĩnh 2KB (WRAM). Các thành phần này phối hợp để thực thi logic game, xử lý âm thanh và quản lý dữ liệu tạm thời.
  • Nhóm liên quan đến PPU được dành riêng cho việc hiển thị hình ảnh. Nó bao gồm bộ xử lý hình ảnh (PPU) và bộ nhớ video (VRAM) liên quan, quản lý mọi thứ từ các sprite nhân vật đến các ô nền (background tiles).
  • Nhóm cartridge chứa ROM chương trình (PRG-ROM) và bộ nhớ ký tự (CHR-ROM hoặc CHR-RAM), và nhiều cartridge còn có thêm các thành phần bổ sung như mappers (MMC) hoặc thậm chí là chip VRAM 8KB riêng để xử lý các game phức tạp hơn.

Trong khi nhiều console cùng thời sử dụng cartridge chủ yếu làm phương tiện lưu trữ, NES đã tạo nên sự khác biệt bằng cách tận dụng khe cắm cartridge để giao tiếp trực tiếp với cả nhóm CPU và PPU. Thiết kế này cho phép tích hợp phần cứng tùy chỉnh, như các bộ điều khiển quản lý bộ nhớ (MMCs) và VRAM mở rộng, ngay bên trong cartridge. Sự tích hợp sâu rộng này giúp cartridge có thể điều chỉnh trực tiếp các khía cạnh quan trọng của đồ họa, âm thanh và bộ nhớ, mang lại cho các nhà phát triển sự linh hoạt lớn hơn để mở rộng khả năng của hệ thống. Đây chính là lý do chúng ta thấy một sự tiến bộ ổn định về chất lượng game trong suốt vòng đời của NES.

Cartridge: Chìa Khóa Mở Rộng Sức Mạnh Console

Cổng kết nối cartridge 72 chân của Nintendo NES, giao diện mở rộng phần cứng độc đáoCổng kết nối cartridge 72 chân của Nintendo NES, giao diện mở rộng phần cứng độc đáo

Những Khối Xây Dựng Mô-đun Của NES: Đi Sâu Vào Từng Thành Phần

Bây giờ, hãy cùng khám phá chi tiết hơn về từng khối xây dựng cốt lõi đã tạo nên sức mạnh và sự linh hoạt của Nintendo NES.

CPU & APU: Bộ Não Xử Lý Logic và Âm Thanh Của NES

Trái tim của NES là CPU, một chip Ricoh tùy chỉnh (RP2A03 cho các vùng NTSC và RP2A07 cho các vùng PAL) dựa trên bộ vi xử lý MOS Technology 6502, vốn đã được sử dụng trong máy tính Apple II. Điểm khác biệt so với 6502 tiêu chuẩn là phiên bản của NES không hỗ trợ các phép toán BCD (binary-coded decimal). Chế độ BCD hữu ích trong các ứng dụng như máy tính hoặc phần mềm kinh doanh nhưng lại không liên quan nhiều đến game. Bằng cách vô hiệu hóa mạch BCD, Nintendo và Ricoh đã tránh được phí cấp phép mà lẽ ra họ phải trả cho MOS Technology.

Chip Ricoh 6502 CPU, bộ vi xử lý trung tâm của máy chơi game Nintendo NESChip Ricoh 6502 CPU, bộ vi xử lý trung tâm của máy chơi game Nintendo NES

Điều làm cho CPU của NES trở nên độc đáo là nó không chỉ là một bộ xử lý – nó còn tích hợp cả bộ xử lý âm thanh (APU). Bộ đồng xử lý này tạo ra âm thanh bằng cách sử dụng năm kênh: hai kênh xung (pulse) cho giai điệu, một kênh tam giác (triangle) cho âm trầm, một kênh nhiễu (noise) cho bộ gõ và một kênh DMC (Delta Modulation Channel) để phát âm thanh mẫu. APU đã tạo nên âm thanh 8-bit đặc trưng của NES, một yếu tố không thể thiếu trong việc định hình trải nghiệm game thời bấy giờ.

Chip RAM làm việc 2KB (WRAM) trên bo mạch chủ NES, nơi lưu trữ dữ liệu độngChip RAM làm việc 2KB (WRAM) trên bo mạch chủ NES, nơi lưu trữ dữ liệu động

2KB RAM làm việc (WRAM) với nhãn BR6216C-10LL được sử dụng để lưu trữ dữ liệu có thể thay đổi – thông tin có thể được tạo, thay đổi hoặc chỉnh sửa sau khi được tạo. Dù dung lượng khá hạn chế, các lập trình viên khéo léo đã tận dụng tối đa khả năng này. Ví dụ, thay vì lưu trữ toàn bộ bản đồ trong bộ nhớ, các game như The Legend of Zelda đã sử dụng thuật toán để tạo dữ liệu bản đồ một cách linh hoạt trong quá trình chơi.

Tóm lại, CPU là “bộ não” của NES, chạy mã game, xử lý đầu vào và chỉ đạo các thành phần khác. Phần APU của CPU điều khiển âm thanh, và WRAM đóng vai trò là không gian làm việc để theo dõi mọi thứ đang diễn ra trong game.

PPU & VRAM: Xử Lý Đồ Họa Đầy Sáng Tạo

Đồ họa của NES được xử lý bởi Bộ Xử lý Hình ảnh (PPU), một chip Ricoh tùy chỉnh có nhãn RP2C02H-O. Trong khi CPU thực thi logic game, PPU tập trung hoàn toàn vào việc hiển thị hình ảnh lên màn hình. Nó được thiết kế để vẽ hai lớp riêng biệt: các ô nền (background tiles) và các sprite, về cơ bản là các đối tượng có thể di chuyển như nhân vật, kẻ thù hoặc đạn.

Chip Ricoh PPU (Bộ xử lý hình ảnh), linh kiện quan trọng tạo nên đồ họa đặc trưng của NESChip Ricoh PPU (Bộ xử lý hình ảnh), linh kiện quan trọng tạo nên đồ họa đặc trưng của NES

Không giống như các GPU hiện đại, PPU không thể lập trình trực tiếp. Thay vào đó, CPU điều khiển nó thông qua các thanh ghi I/O được ánh xạ bộ nhớ (memory-mapped I/O registers), hoạt động như một cầu nối giữa hai thành phần. Các thanh ghi này cho phép CPU “ra lệnh” cho PPU vẽ những ô nào, đặt chúng ở đâu và tô màu như thế nào. Chẳng hạn, khi Mario nhảy trong Super Mario Bros., CPU sẽ cập nhật các thanh ghi PPU để di chuyển sprite của Mario theo chiều dọc, đồng thời vẽ lại các ô nền thích hợp khi anh ấy di chuyển.

Chip VRAM 2KB trên bo mạch chủ Nintendo NES, lưu trữ dữ liệu đồ họa màn hìnhChip VRAM 2KB trên bo mạch chủ Nintendo NES, lưu trữ dữ liệu đồ họa màn hình

Hỗ trợ PPU là 2KB VRAM (video RAM), cùng loại SRAM được sử dụng cho WRAM. VRAM này lưu trữ các bảng tên (name tables) – xác định vị trí các ô xuất hiện trên màn hình, các bảng thuộc tính (attribute tables) – quản lý việc gán màu cho các nhóm ô, và các bảng màu (palettes) – các màu cụ thể mà mỗi ô có thể sử dụng. Các bảng này cho phép các nhà phát triển tạo ra hình ảnh phức tạp dù phần cứng của NES bị giới hạn.

Để tiết kiệm tài nguyên, NES chỉ có đủ VRAM để hỗ trợ hai màn hình cho các bảng tên, đó là lý do tại sao các game như Metroid sử dụng kỹ thuật “mirroring” (phản chiếu) để tái sử dụng các phần của màn hình khi cuộn ngang hoặc dọc. Các nhà phát triển có thể điều khiển việc mirroring này bằng cách sử dụng các thanh ghi được ánh xạ bộ nhớ, đảm bảo trải nghiệm chơi game mượt mà ngay cả với phần cứng hạn chế.

Nói một cách đơn giản, nhóm PPU hoạt động tương tự như nhóm CPU nhưng được dành hoàn toàn cho đồ họa. Trong khi CPU xử lý logic game, PPU đảm nhiệm mọi thứ về mặt hình ảnh – vẽ nền, nhân vật và hoạt ảnh trên màn hình bằng dữ liệu được lưu trữ trong VRAM.

Cartridge: Linh Hồn Mở Rộng Khả Năng Vô Hạn Của Game NES

Trong khi PPU và CPU tạo nên lõi của NES, thì cartridge lại bổ sung sự “kỳ diệu” khiến mỗi game trở nên độc đáo. Cartridge không chỉ là một thiết bị lưu trữ – nó là một phần mở rộng của console, giao tiếp trực tiếp với cả CPU và PPU thông qua một cổng kết nối 72 chân mạnh mẽ.

Cổng kết nối 72 chân trên bo mạch chủ NES, giao tiếp giữa console và cartridge gameCổng kết nối 72 chân trên bo mạch chủ NES, giao tiếp giữa console và cartridge game

Mỗi cartridge đều chứa một chip Program ROM (PRG-ROM), nơi lưu trữ mã game, và một Character ROM (CHR-ROM) hoặc CHR-RAM, nơi lưu trữ dữ liệu ô (tile data) cho đồ họa. Đối với các game sử dụng CHR-ROM, đồ họa được tải sẵn vào cartridge, trong khi các game với CHR-RAM cho phép CPU sửa đổi đồ họa một cách linh hoạt trong quá trình chơi.

Một số cartridge còn bao gồm thêm RAM đa năng (lên đến 8KB) để mở rộng bộ nhớ của NES và lưu trữ dữ liệu game đã lưu. Những cartridge này thường có một viên pin CR2032 được hàn vào PCB, dùng để duy trì tiến trình đã lưu ngay cả khi console đã tắt – một tính năng quan trọng được sử dụng trong các game như The Legend of Zelda.

Bảng mạch in (PCB) bên trong một cartridge game NES, chứa ROM và các chip mở rộngBảng mạch in (PCB) bên trong một cartridge game NES, chứa ROM và các chip mở rộng

Một trong những tính năng sáng tạo nhất của NES là khả năng tích hợp Bộ điều khiển Quản lý Bộ nhớ (Memory Management Controllers – MMC) vào cartridge. Các chip này cho phép các nhà phát triển vượt qua giới hạn bộ nhớ địa chỉ 64KB của console bằng cách kích hoạt bank switching (chuyển đổi ngân hàng bộ nhớ). Bằng cách hoán đổi các khối bộ nhớ vào và ra khỏi phạm vi truy cập của CPU, các nhà phát triển có thể đưa các game lớn hơn và phức tạp hơn vào một cartridge duy nhất. MMCs cũng giới thiệu các tính năng như cuộn mượt mà (smooth scrolling) và bảng màu mở rộng.

Một số cartridge nâng cao thậm chí còn đi kèm với VRAM riêng trên bo mạch, cho phép chúng xử lý dữ liệu đồ họa độc lập với VRAM tích hợp của console. Ví dụ, các game như Kirby’s Adventure đã sử dụng những cải tiến này để đẩy giới hạn về những gì NES có thể hiển thị.

Nói tóm lại, cartridge không chỉ là một phương tiện lưu trữ mà thực sự là một phần không thể thiếu trong kiến trúc của NES. Bằng cách nhúng phần cứng bổ sung trực tiếp vào cartridge, các nhà phát triển có thể thoát khỏi những hạn chế của console và đẩy giới hạn của những gì có thể thực hiện được vào thời điểm đó.

Hệ Thống Bus: Mạng Lưới Giao Tiếp Hài Hòa Của NES

Mặt dưới bo mạch chủ Nintendo NES, hiển thị hệ thống bus và các thành phần chínhMặt dưới bo mạch chủ Nintendo NES, hiển thị hệ thống bus và các thành phần chính

Các thành phần của NES hoạt động cùng nhau thông qua một hệ thống bus dữ liệu và bus địa chỉ được điều phối tốt. CPU luôn được kết nối với các bus này, điều khiển luồng dữ liệu giữa WRAM, PPU, APU và cartridge game.

  • Bus dữ liệu: Bus song song 8-bit này mang thông tin thực tế, như hướng dẫn game hoặc dữ liệu đồ họa, giữa các thành phần.
  • Bus địa chỉ: Bus 16-bit này xác định nơi dữ liệu cụ thể được lưu trữ, cho dù trong WRAM, VRAM hay cartridge.

Mỗi thành phần đều có một tín hiệu chọn chip (chip-select signal), được điều khiển bởi một chip logic rời rạc có nhãn 74LS139, đảm bảo chỉ thành phần chính xác phản hồi khi dữ liệu được truy cập. Chẳng hạn, khi CPU cần cập nhật vị trí của Mario, bus địa chỉ sẽ xác định chính xác vị trí bộ nhớ trong WRAM, trong khi bus dữ liệu gửi các tọa độ mới.

Để duy trì hiệu quả, NES sử dụng I/O ánh xạ bộ nhớ (memory-mapped I/O), chia 64KB bộ nhớ của CPU thành các vùng được gán cho các thành phần cụ thể. Cấu hình này cho phép CPU tương tác liền mạch với tất cả phần cứng, coi PPU, APU và cartridge như thể chúng chỉ là các vị trí bộ nhớ bổ sung.

Nói một cách đơn giản, hệ thống giao tiếp của NES hoạt động giống như một mạng lưới các “người đưa tin”, mỗi người chịu trách nhiệm mang thông tin cụ thể giữa các thành phần. CPU đóng vai trò là điều phối viên trung tâm, đảm bảo rằng logic game, đồ họa và dữ liệu âm thanh đều đến đúng nơi vào đúng thời điểm.

Kiệt Tác Mô-đun: Di Sản Vượt Thời Gian Của NES

Giải Mã Quá Khứ: Bài Học Từ NES

Thiết kế phần cứng của NES là độc đáo vào thời điểm đó và nó chắc chắn đã mang lại thành quả. Bằng cách giảm tải một số phần cứng của console sang cartridge, Nintendo đã tạo ra một hệ thống vừa tiết kiệm chi phí vừa có khả năng thích ứng vô tận. Đó là điều đã giúp nó duy trì sự phù hợp gần một thập kỷ và cho phép các nhà phát triển vượt qua giới hạn của những gì có thể trong thiết kế game.

Ngày nay, chúng ta có thể tháo rời những cỗ máy này, phân tích từng đường mạch trên bo mạch và hiểu đầy đủ cách chúng hoạt động. Mức độ truy cập đó là một phần của điều làm cho điện toán retro (retro computing) trở nên hấp dẫn – bạn có thể theo dõi mọi kết nối, xem mọi thứ phù hợp với nhau như thế nào, và thậm chí tự tái tạo phần cứng của mình với các dự án mã nguồn mở như OpenTendo.

Máy chơi game Nintendo NES cùng súng Zapper, biểu tượng của trải nghiệm game retroMáy chơi game Nintendo NES cùng súng Zapper, biểu tượng của trải nghiệm game retro

Công Nghệ Hiện Đại: Sự Phức Tạp Vô Tận?

Thật không may, với điện toán hiện đại, kiểu hiểu biết sâu sắc, thực tế như vậy dường như gần như không thể đạt được. Với các bộ vi xử lý chứa hàng tỷ transistor và phần mềm dựa trên các lớp trừu tượng phức tạp, ý tưởng giải cấu trúc hoàn toàn một hệ thống hiện đại theo cách chúng ta làm với NES dường như là bất khả thi. Đối với nhiều người trong chúng ta, chiếc máy tính mạnh mẽ nhất mà chúng ta sở hữu có thể nằm trong túi. Liệu ai đó, hàng thập kỷ sau, có thể thực hiện kỹ thuật đảo ngược công nghệ ngày nay theo cùng một cách? Hay kỷ nguyên thực sự hiểu cách một thứ hoạt động, đến từng mạch điện cuối cùng, đã qua đi?

Dù bằng cách nào, có một điều gì đó thỏa mãn khi đi sâu vào phần cứng, cho dù đó là phân tích kiến trúc của một console cổ điển hay làm việc với các dự án của riêng bạn ngày nay. Nếu bạn đã đọc đến đây, rất có thể bạn cũng có chung sự tò mò đã truyền cảm hứng cho rất nhiều người để thử nghiệm với NES vào thời đó. Vì vậy, có lẽ đây là dấu hiệu để bạn cuối cùng bắt đầu dự án Arduino đó, tự xây dựng máy tính để bàn của riêng mình hoặc biến chiếc laptop cũ thành một NAS. Rốt cuộc, cách tốt nhất để hiểu một hệ thống là tự tay trải nghiệm nó.

Related posts

Dragon Ball: Sparking! Zero Có Thể Đến Nintendo Switch 2 Nhờ Rò Rỉ Đáng Chú Ý Từ Saudi Arabia

Administrator

Top 5 Game Bị Hủy Bỏ Nhưng Bản Dựng Đã Rò Rỉ Đáng Kinh Ngạc

Administrator

Darth Jar Jar Lần Đầu Xuất Hiện Trong Fortnite: Hé Lộ Sức Mạnh Sấm Sét Và Đại Sự Kiện Star Wars Bùng Nổ

Administrator