Bộ nhớ lõi trong không gian: Mô-đun bộ nhớ từ máy tính Spacelab năm 1980
Bài viết khám phá chi tiết hệ thống bộ nhớ lõi từ (core memory) được sử dụng trong máy tính Mitra 125 MS của trạm vũ trụ Spacelab năm 1980. Đây là một ví dụ muộn và tiên tiến của công nghệ lưu trữ đã thống trị máy tính trước thời đại bán dẫn, với kiến trúc 2½D độc đáo giúp tăng hiệu suất và mật độ lưu trữ. Bộ nhớ này cung cấp 128 KB RAM với khả năng chống bức xạ và lưu trữ không bay hơi, quan trọng cho các ứng dụng vũ trụ.

Bộ nhớ lõi trong không gian: Mô-đun bộ nhớ từ máy tính Spacelab năm 1980
Spacelab là một phòng thí nghiệm tái sử dụng được thiết kế để mang trong khoang chở hàng của tàu con thoi, cung cấp không gian làm việc cho các phi hành gia và các thí nghiệm khoa học. Là một dự án của châu Âu, Spacelab đã sử dụng một máy tính mini do Pháp chế tạo—Mitra 125 MS—thay vì các máy tính chính của tàu con thoi là IBM AP-101. Đối với lưu trữ, máy tính này chứa 128 kilobyte RAM, nhưng thay vì bộ nhớ bán dẫn silicon, nó dùng bộ nhớ lõi từ (core memory)—mỗi bit được lưu trong một vòng ferrite nhỏ xíu.
Cụm bộ nhớ lõi từ máy tính Spacelab
Cụm bộ nhớ lõi từ từ máy tính Spacelab. Tấm trên cùng đã được tháo ra để hiển thị các lớp lõi.
Bối cảnh: Spacelab và vai trò của máy tính
Spacelab là một mô-đun hình trụ chịu áp lực nằm trong khoang chở hàng của tàu con thoi, kết nối với tàu qua một đường hầm. Bên trong là ba máy tính Mitra giống hệt nhau: một máy quản lý Spacelab, một máy quản lý các thí nghiệm, và một máy dự phòng trong trường hợp lỗi. Các thí nghiệm được gắn trên các pallet phía sau mô-đun phòng thí nghiệm.
Cụm bộ nhớ lõi chiếm khoảng một phần ba không gian của máy tính. Toàn bộ tấm bên hông máy có thể tháo rời, và bộ nhớ lõi trượt ra ngoài. Vì máy tính được làm mát bằng dẫn nhiệt, việc gắn chặt cụm bộ nhớ vào tấm bên giúp giữ nhiệt độ ổn định.
Bộ nhớ và máy tính Spacelab
Cụm bộ nhớ lõi phía trước máy tính Mitra. Các bo mạch ở phía xa đã được tháo ra.
Bộ nhớ lõi hoạt động như thế nào?
Một trong những vấn đề khó khăn nhất của máy tính đầu tiên là lưu trữ dữ liệu. Trước bộ nhớ lõi, máy tính dùng các kỹ thuật như sóng âm trong thủy ngân, các điểm trên màn hình CRT, hoặc trống từ quay—nhưng tất cả đều có hạn chế. Bộ nhớ lõi giải quyết bằng cách dùng các vòng ferrite từ tính hình xuyến (toroidal), mỗi vòng lưu một bit. Vòng có thể bị từ hóa theo chiều kim đồng hồ hoặc ngược lại để biểu diễn bit 0 hoặc 1.
Vấn đề chính là cách nối dây mà không cần quá nhiều dây riêng lẻ. Giải pháp là định địa chỉ dòng trùng hợp (coincident current addressing): các lõi được sắp xếp theo lưới, với dây ngang và dây dọc. Bằng cách cho dòng điện qua một dây ngang và một dây dọc, chỉ đúng một lõi tại điểm giao nhau được chọn. Các lõi được chế tạo từ vật liệu có độ trễ (hysteresis) đặc biệt: một dòng điện nhỏ không đủ làm thay đổi trạng thái, nhưng khi hai dòng nửa cường độ gặp nhau tại giao điểm, từ trường sẽ đủ mạnh để lật trạng thái lõi.
Sơ đồ định địa chỉ lõi
Kích hoạt một dây X và một dây Y chọn ra một lõi duy nhất (màu vàng). Biểu đồ từ "Digital Computer Components and Circuits" của R. K. Richards.
Để đọc dữ liệu, một dây cảm ứng (sense wire) được luồn qua tất cả các lõi trong mặt phẳng. Khi lõi chuyển từ 1 sang 0, sự thay đổi từ trường tạo ra một dòng điện nhỏ trong dây cảm ứng. Điểm yếu là việc đọc sẽ phá hủy dữ liệu, nên phải ghi lại ngay sau khi đọc. Để ghi bit 0, người ta dùng dây chặn (inhibit line) đi qua tất cả lõi trong mặt phẳng, chạy ngược chiều với dây X, làm triệt tiêu dòng điện và giữ nguyên trạng thái 0 cho các lõi cần thiết.
Một yếu tố quan trọng khác là ma trận diode. Các dây X và Y cần driver riêng, nhưng số lượng driver quá lớn sẽ rất đắt. Giải pháp là dùng chung driver qua ma trận diode: N driver mỗi bên có thể điều khiển N² dây, hỗ trợ N⁴ lõi. Diode ngăn dòng điện đi "đường vòng" không mong muốn.
Kiến trúc 2½D trong bộ nhớ Spacelab
Bộ nhớ của máy tính Spacelab được sản xuất năm 1980—thời điểm muộn của công nghệ core memory—nên nó rất tiên tiến và mật độ cao. Mỗi bo lõi chứa 16K từ 18-bit (32 KB), với tổng cộng 128 KB RAM. Máy tính là loại 16-bit, nhưng mỗi từ có thêm một bit chẵn lẻ (parity) và một bit bảo vệ lưu trữ (storage protect) để chống ghi đè, nâng tổng lên 18 bit.
Điểm đặc biệt là bộ nhớ này dùng kiến trúc 2½D—khác với kiến trúc 3D thông thường—bằng cách loại bỏ dây inhibit. Thay vào đó, mỗi bit có mạch driver X riêng. Khi ghi dữ liệu, chỉ các dây X tương ứng với bit 1 được kích hoạt, còn các bit 0 không được kích hoạt, giữ nguyên trạng thái 0. Kiến trúc này cần nhiều driver hơn (gấp 18 lần cho từ 18-bit), nhưng nhờ sự phát triển của IC driver, chi phí không còn là vấn đề.
Bộ nhớ còn dùng kỹ thuật đảo pha (phase reversal) để giảm một nửa số driver dọc: các cặp dây dọc được nối thành vòng chữ U. Bằng cách đổi chiều dòng điện, driver có thể chọn lõi bên trái hoặc bên phải của cặp, tăng gấp đôi số lõi mà mỗi driver điều khiển được.
Lõi ferrite của bộ nhớ
Cận cảnh các lõi ferrite. Mỗi lõi có đường kính khoảng 0,8 mm—cùng kích thước với lõi trong IBM System/360—nhưng được xếp dày đặc hơn nhiều.
Các bo mạch khác và sự kết thúc của kỷ nguyên core memory
Cụm bộ nhớ gồm 7 bo: một bo driver, bốn bo lõi, một bo driver thứ hai và một bo giao tiếp. Các bo driver cung cấp xung dòng cao (600 mA) cho các dây chọn, dùng các chip driver chuyên dụng SN55325 và SN55327. Bo giao tiếp kết nối bộ nhớ với phần còn lại của máy tính, dùng các transistor rời thay vì chip giao tiếp.
Bộ nhớ lõi từ có tuổi thọ dài, sống sót qua thời kỳ đèn chân không, transistor và IC, nhờ hai ưu điểm so với bộ nhớ bán dẫn: giữ dữ liệu khi mất điện và chống bức xạ. Các ứng dụng hàng không vũ trụ dùng core memory lâu hơn nữa vì lý do này. Tuy nhiên, mật độ cao, giá rẻ và tiêu thụ điện năng thấp của bộ nhớ bán dẫn cuối cùng đã thắng thế.
Năm 1991, tàu con thoi được nâng cấp với máy tính IBM AP-101S dùng bộ nhớ bán dẫn, phải thêm pin dự phòng và mã sửa lỗi (ECC) để đối phó với bức xạ—một vấn đề mà core memory vốn tự xử lý tốt. Dù công nghệ core memory giờ đã thuộc về quá khứ, nó vẫn còn sống trong thuật ngữ "core dump" mà chúng ta dùng đến ngày nay.