05/17 Bộ nhớ lõi từ Các chương

Từ trống quay đến những chiếc vòng đứng yên

Nếu từ tính đã giữ được bit rất tốt, làm sao bỏ cái trống đang quay mà vẫn chọn đúng bit cần đọc?

Ở bài trước, trống từ đã giải được một nửa bài toán.

Từ tính có thể giữ một bit mà không cần liên tục bơm lại như ống thuỷ ngân, cũng không bị điện tích phai dần như ống Williams.

Nhưng bit lại nằm trên một cái trống đang quay.

Muốn đọc một bit ở phía bên kia, máy phải chờ nó quay tới đầu đọc.

Nếu vấn đề nằm ở cái trống, tại sao không:

giữ từ tính, nhưng bỏ chuyển động?

Đó chính là bước tiếp theo.

Thay vì phủ vật liệu từ lên một hình trụ quay, người ta dùng hàng nghìn chiếc vòng ferrite cực nhỏ đứng yên.

Mỗi vòng giữ đúng một bit.

Một tấm bộ nhớ lõi từ với vùng lưới các vòng ferrite nhỏ ở giữa
Một tấm bộ nhớ lõi từ 32 × 32 vòng: 1.024 bit. Ảnh: Konstantin Lanzet / Wikimedia Commons · CC BY-SA 3.0

Ô vuông sẫm ở giữa tấm ảnh chứa 1.024 chiếc vòng nhỏ.

Nhưng một chiếc vòng không có công tắc, không có màn hình và cũng không quay.

Làm sao nó nhớ được 0 hay 1?

Giữ lại từ tính, bỏ cái trống

Trống từ lưu bit bằng cách từ hoá những vùng nhỏ trên bề mặt.

Một vùng có thể bị từ hoá theo trạng thái này hoặc trạng thái ngược lại.

Ta gọi một trạng thái là 0, trạng thái kia là 1.

Điều hay của từ tính là sau khi đã tạo trạng thái, nó không cần được liên tục cấp điện để giữ nguyên.

Vì vậy ý tưởng của trống từ không sai.

Chỉ có cách bố trí các bit là bất tiện.

TRỐNG TỪ

bit bit bit bit bit
 ↓   ↓   ↓   ↓   ↓

╭────────────────────╮
│                    │  ↻ quay
╰────────────────────╯

       đầu đọc

Đầu đọc đứng yên.

Các bit phải quay tới nó.

Bây giờ thử đảo ngược ý tưởng:

thay vì

BIT DI CHUYỂN → đầu đọc

hãy để

BIT ĐỨNG YÊN → tín hiệu điện đi tới bit

Muốn làm được vậy, mỗi bit phải trở thành một mẩu vật liệu từ riêng.

Mẩu vật liệu ấy là một chiếc vòng nhỏ làm bằng ferrite.

Một chiếc vòng có hai trạng thái

Ferrite là một vật liệu có từ tính.

Khi chiếc vòng ferrite bị từ hoá, từ trường chạy vòng quanh chiếc vòng.

Nó có thể chạy theo một trong hai chiều.

Ta chỉ cần quy ước:

chiều này        = 1
chiều ngược lại  = 0
Cận cảnh những vòng ferrite nhỏ xâu trên nhiều sợi dây
Cận cảnh bộ nhớ lõi từ: mỗi vòng ferrite giữ một bit. Ảnh: Konstantin Lanzet / Wikimedia Commons · CC BY-SA 3.0

Điểm quan trọng không phải chiều nào là 0 hay 1.

Mà là chiếc vòng có hai trạng thái ổn định.

Sau khi đã bị từ hoá, nó giữ nguyên trạng thái ấy.

Không có xung phải chạy vòng quanh một ống.

Không có điện tích phải refresh liên tục.

Không có cái trống nào phải quay.

Vậy phần giữ bit đã xong.

Nhưng làm sao đổi một vòng từ 0 sang 1?

Ghi bit bằng dòng điện

Dòng điện chạy qua một sợi dây tạo ra từ trường quanh sợi dây đó.

Nếu xâu dây qua chiếc vòng ferrite rồi cho dòng điện đủ mạnh chạy qua, từ trường của dây có thể làm chiếc vòng đổi chiều từ hoá.

Đó chính là ghi.

dòng điện theo chiều A

từ trường quanh dây

vòng bị từ hoá theo một chiều

        1

Đảo chiều dòng:

dòng điện theo chiều B

từ trường đổi chiều

vòng bị từ hoá ngược lại

        0

Như vậy, ghi một bit chỉ cần:

cho dòng điện đúng chiều chạy qua chiếc vòng.

Nhưng một máy tính không có một vòng.

Nó có hàng nghìn vòng.

Nếu kéo một sợi dây riêng tới từng vòng thì:

1.024 bit → 1.024 đường điều khiển

Bộ nhớ càng lớn, số dây càng khủng khiếp.

May mắn là chiếc vòng ferrite còn có một tính chất rất hữu ích:

dòng điện yếu chưa đủ để làm nó lật trạng thái.

Chính điều này giúp người ta chọn được một vòng trong cả nghìn vòng.

Hai dây cùng chọn một bit

Các vòng được xếp thành một lưới.

Mỗi vòng nằm ở giao điểm của:

  • một dây ngang X
  • một dây dọc Y
Một góc bộ nhớ lõi từ với các vòng ferrite nằm trên lưới dây ngang và dọc
Các vòng ferrite được xếp thành lưới và xuyên qua bởi nhiều dây. Ảnh: Konstantin Lanzet / Wikimedia Commons · CC BY-SA 3.0

Hãy tưởng tượng một lưới nhỏ:

          Y1    Y2    Y3    Y4
           │     │     │     │

X1 ─────── ○ ─── ○ ─── ○ ─── ○
           │     │     │     │

X2 ─────── ○ ─── ○ ─── ○ ─── ○
           │     │     │     │

X3 ─────── ○ ─── ○ ─── ○ ─── ○
           │     │     │     │

X4 ─────── ○ ─── ○ ─── ○ ─── ○

Giả sử một vòng cần mức từ trường tương ứng với 1 để đổi trạng thái.

Máy không gửi 1 qua một dây.

Nó gửi:

X3 → 0,5
Y2 → 0,5

Các vòng nằm trên X3 chỉ nhận 0,5.

Chưa đủ.

Các vòng nằm trên Y2 cũng chỉ nhận 0,5.

Vẫn chưa đủ.

Chỉ có vòng nằm ở đúng giao điểm X3 + Y2 nhận cả hai:

0,5 + 0,5 = 1

Và chỉ vòng đó đổi trạng thái.

          Y1    Y2    Y3    Y4


X1        ○      ○      ○      ○

X2        ○      ○      ○      ○

X3 ────── ○ ─── [●] ─── ○ ─── ○

              được chọn

X4        ○      ○      ○      ○

Đây là nguyên lý dòng trùng hợpcoincident current.

Hai dòng riêng lẻ đều quá yếu.

Chỉ nơi chúng trùng nhau mới đủ mạnh để lật vòng.

Nhờ vậy, với một tấm 32 × 32:

32 × 32 = 1.024 vòng

nhưng chỉ cần chọn một trong 32 đường X và một trong 32 đường Y để đi tới đúng vòng cần ghi.

Mỗi chiếc vòng là một bit
Y \ X
  1. Hàng 110110010
  2. Hàng 200000000
  3. Hàng 300000000
  4. Hàng 400000000
  5. Hàng 500000000
  6. Hàng 600000000
  7. Hàng 700000000
  8. Hàng 800000000

Bấm một vòng để đổi chiều từ hoá: xoay thuận = 1, xoay ngược = 0. Hoặc chọn một dây X và một dây Y: chỉ vòng ở giao điểm nhận đủ dòng để lật.

Trong mô phỏng, hãy chọn một dây X, sau đó chọn một dây Y.

Quan sát vòng ở giao điểm.

Chỉ vòng đó nhận đủ dòng để đổi trạng thái.

Đây chính là thứ trống từ không làm được.

Không cần chờ bit quay tới đầu đọc.

Máy có thể chọn thẳng vị trí cần ghi.

Nhưng ghi được chưa có nghĩa là đọc được.

Chiều từ hoá nằm bên trong chiếc vòng.

Làm sao biết nó đang là 0 hay 1?

Đọc bằng cách thử lật chiếc vòng

Ngoài dây X và Y, còn có một dây khác chạy qua các vòng.

Nó được gọi là dây sense — dây cảm nhận.

Dây sense không giữ bit.

Nó chỉ làm một việc:

phát hiện lúc một vòng thay đổi trạng thái từ hoá.

Để đọc một bit, máy dùng X và Y để thử ghi 0 vào vòng đó.

Có hai trường hợp.

Nếu vòng đang là 0

Máy thử ghi 0.

Nhưng vòng vốn đã là 0 nên không cần đổi trạng thái.

đang là 0

thử ghi 0

không lật

sense không có xung

Máy kết luận:

bit vừa đọc là 0.

Nếu vòng đang là 1

Máy lại thử ghi 0.

Lần này chiếc vòng phải đổi từ:

1 → 0

Khi từ trường thay đổi, dây sense nhận được một xung điện nhỏ.

đang là 1

thử ghi 0

vòng LẬT

sense có xung

Máy kết luận:

bit vừa đọc là 1.

Tóm lại:

Khi thử ghi 0 Dây sense Bit ban đầu
Vòng không lật Không có xung 0
Vòng lật Có xung 1

Cách đọc này rất thông minh.

Nhưng có một vấn đề.

Đọc xong thì bit đã bị xoá

Giả sử vòng ban đầu giữ 1.

Để phát hiện nó, máy vừa ép nó về 0.

Nghĩa là sau khi đọc:

trước khi đọc: 1

đọc


sau khi đọc: 0

Đọc đã phá dữ liệu.

Kiểu đọc này gọi là đọc phá huỷdestructive read.

Nhưng máy đã biết giá trị vừa đọc là 1.

Vì vậy ngay sau đó nó chỉ việc ghi 1 trở lại.

1

đọc

0

biết vừa đọc được 1

ghi lại 1

Có thêm một bước ghi lại, nhưng tất cả vẫn diễn ra bằng tín hiệu điện.

Không phải chờ xung chạy qua một ống.

Không phải chờ cái trống quay.

Lõi từ đã ghép được hai ý hay

Nhìn lại các bộ nhớ của chương trước:

Bộ nhớ Ý hay Điểm vướng
Ống thuỷ ngân nhiều bit dùng chung phần cứng phải chờ xung chạy tới
Ống Williams chọn trực tiếp vị trí cần đọc điện tích tự phai
Trống từ từ tính giữ bit không cần liên tục duy trì phải chờ trống quay
Lõi từ từ tính + chọn trực tiếp từng vị trí mỗi bit vẫn là một vòng thật

Lõi từ giữ lại điều tốt nhất của trống từ:

dùng từ tính để giữ trạng thái.

Nhưng thay vì đặt các bit trên một bề mặt quay, nó cho mỗi bit một vị trí cố định.

Rồi lưới X và Y cho phép máy đi thẳng tới vị trí đó.

TRỐNG TỪ

bit đứng trên bề mặt quay
→ phải chờ


LÕI TỪ

bit đứng yên trong lưới
→ chọn X + Y
→ tới đúng bit

Đó là bước thay đổi quan trọng:

Bit không còn phải đi tới đầu đọc. Tín hiệu điện đi tới bit.

Từ một tấm 1.024 vòng thành bộ nhớ máy tính

Một trong những máy quan trọng trong lịch sử bộ nhớ lõi từ là Whirlwind tại MIT.

Máy được thiết kế cho những công việc cần phản ứng theo thời gian thực.

Bộ nhớ dựa trên CRT trước đó là một điểm yếu.

Năm 1953, nhóm phát triển đưa một bộ nhớ lõi từ 32 × 32 vào Whirlwind.

Một mặt phẳng chứa:

32 × 32 = 1.024 bit

Mỗi bit là một vòng ferrite.

Từ đó, bộ nhớ lõi từ dần trở thành công nghệ bộ nhớ chính phổ biến của máy tính trong nhiều năm.

Nó giải quyết được gần như toàn bộ những vấn đề mà các công nghệ trước để lại:

Máy cần Lõi từ làm thế nào?
Bit đứng yên mỗi bit là một vòng ferrite cố định
Chọn trực tiếp một bit chọn một dây X + một dây Y
Không cần refresh để giữ bit từ hoá tự giữ trạng thái
Không có trống quay toàn bộ lưới đứng yên
Ghi 0 hoặc 1 đổi chiều từ hoá
Đọc bit dây sense phát hiện vòng có lật hay không

Có thể tóm tắt toàn bộ bộ nhớ lõi từ bằng ba động tác:

GIỮ
chiều từ hoá của vòng = 0 hoặc 1

GHI
X + Y tạo đủ từ trường → lật vòng

ĐỌC
thử ép vòng về 0 → sense xem nó có lật không

Một chiếc vòng nhỏ đã trở thành một ô nhớ hoàn chỉnh.

Nhưng chính chữ “một chiếc vòng” lại là vấn đề tiếp theo.

Mỗi bit vẫn là một vật thật

Nhìn kỹ tấm core memory một lần nữa.

Mỗi chấm nhỏ không phải là một hình được in lên bề mặt.

Nó là một chiếc vòng ferrite thật.

1 vòng = 1 bit

Muốn 1.024 bit:

cần 1.024 vòng

Muốn 100.000 bit:

cần 100.000 vòng

Và mỗi vòng còn phải nằm đúng vị trí trong lưới dây.

Các vòng rất nhỏ.

Dây phải được xâu xuyên qua chúng với độ chính xác cao.

Nhiều công đoạn từng phải làm thủ công, thường dưới kính phóng đại.

Một bit bây giờ đã nhỏ hơn rất nhiều so với một cụm đèn điện tử.

Nhưng nó vẫn là một vật thể riêng biệt phải được chế tạo và lắp vào bộ nhớ.

Máy tính càng mạnh, nhu cầu bộ nhớ càng tăng:

1 nghìn bit

10 nghìn bit

100 nghìn bit

1 triệu bit

...

Nếu thêm một bit đồng nghĩa với thêm một chiếc vòng, cách sản xuất này cuối cùng cũng sẽ gặp giới hạn.

Vấn đề không còn là:

“Làm sao giữ được một bit?”

Lõi từ đã trả lời rất tốt câu đó.

Vấn đề mới là:

“Làm sao sản xuất thật nhiều bit?”

Muốn đi từ hàng nghìn bit lên hàng triệu bit, người ta cần một cách hoàn toàn khác.

Không phải:

làm 1 ô nhớ
làm thêm 1 ô nhớ
làm thêm 1 ô nhớ
...

mà là:

tạo hàng nghìn
hoặc hàng triệu ô nhớ

CÙNG MỘT LÚC

trên cùng một miếng vật liệu.

Làm sao tạo ra hàng triệu ô nhớ cùng một lúc trên một miếng vật liệu?