Tại sao trong bộ vi xử lý 8085, tần số xung nhịp được chia cho hai?


16

Tại sao tần số xung nhịp được tạo ra là 6.144 MHz, nhưng bên trong nó (bộ xử lý 8085) chỉ sử dụng 3.072 MHz. Ngoài ra những gì dẫn đến giá trị cụ thể của 6.144 trong một đồng hồ.

Tôi đã tìm thấy câu trả lời tại yahoo .... http://answers.yahoo.com/question/index?qid=20080810090119AAurr2i

nhưng tôi phải thừa nhận rằng tôi đã không nhận được nó tốt. Các bạn có thể ném ra vài dòng về điều này không?


2
câu trả lời của yahoo rất rất kém. Xin vui lòng tha thứ cho tôi nếu bạn biết nhà văn.
Kortuk

hmm, chỉ cần vi xử lý trong học kỳ này, vì vậy tôi không biết điều đó có thể sai đến mức nào. Tôi đoán tôi đã có câu trả lời ở đây ... cảm ơn bạn.
loxxy

1
MC6800 thậm chí còn đòi hỏi nhiều hơn. Nó có hai đầu vào đồng hồ (phi1, phi2, khoảng 180 độ dịch chuyển) cần phải không chồng chéo , tức là một pha phải thấp đối với một số ns trước khi pha kia được phép tăng. Có thêm một IC dao động (MC6810?) Để tạo ra các tín hiệu đồng hồ đó.
Sữa đông

1
@Curd Thời gian khó chịu và nó đã phải xoay rất gần với CẢ HAI đường ray cung cấp (hiếm trong những ngày đó). pdf.datasheetarchive.com/indexerfiles/Scans-000/ trên MC6871. MC6810 là chip RAM tĩnh 128 x 8 (!).
Spehro Pefhany

Câu trả lời:


15

Một lý do để chia một đồng hồ cho hai là để có được một sóng vuông chu kỳ nhiệm vụ thậm chí 50%. Có thể là 8085 bên trong sử dụng cả hai cạnh đồng hồ và sẽ không hoạt động nếu một nửa chu kỳ xảy ra ngắn hơn nhiều so với nửa kia.

Vào thời mà 8085 còn mới, những bộ dao động đóng hộp đẹp đẽ đó không phổ biến và mọi người thường lắp ghép các mạch đồng hồ ra khỏi các tinh thể, tụ điện và cổng logic rời rạc. Chia cho hai đảm bảo rằng bạn có các cạnh tăng và giảm đều nhau.

Đối với 6.144 MHz, bạn sẽ thấy rằng nó có thể được chia cho một số nguyên để có được các giá trị tốc độ truyền chung, ít nhất là lên tới 38400.


theo sát ...

Nhìn vào bảng dữ liệu Intel cho 8085, có ba tuyên bố thú vị

  1. 8085 kết hợp tất cả các tính năng mà bộ tạo xung nhịp 8224 và bộ điều khiển hệ thống 8228 cung cấp cho 8080A

  2. X1 và X2: Được kết nối với mạng tinh thể, LC hoặc RC để điều khiển bộ tạo xung nhịp bên trong. Tần số đầu vào được chia cho 2 để cung cấp tần số hoạt động bên trong của bộ xử lý.

  3. CLK: Đầu ra đồng hồ để sử dụng làm đồng hồ hệ thống. Thời gian của CLK gấp đôi thời gian đầu vào X1, X2.

Vì vậy, những suy đoán về việc sử dụng các cạnh lẻ của đồng hồ để di chuyển các thứ bên trong sang một bên, rõ ràng là khi họ thiết kế 8085, Intel đã thay thế nhu cầu về bộ điều khiển đồng hồ đặc biệt bằng cách tích hợp tính năng đó vào chip. Chia đôi cơ sở thời gian X1-X2 thành một nửa trước khi xuất ra nó vì CLK đảm bảo rằng hệ thống có được một chu kỳ nhiệm vụ tốt đẹp, nếu không có gì khác.


1
thường các giai đoạn khác nhau trong vi điều khiển cần phải lệch pha do độ trễ logic. sử dụng bộ tạo dao động tốc độ cao hơn và phân chia và sử dụng hai cạnh khác nhau cho các bộ logic khác nhau có thể giúp giảm đáng kể chi phí của thiết bị. JustJeff luôn chú ý đến việc sử dụng bộ tạo dao động là bội số của tốc độ xung nhịp tiêu chuẩn. Nó có thể thực hiện chuyển tốc độ cao rất dễ dàng.
Kortuk

2
Bạn có chắc chắn về tuyên bố chu kỳ nhiệm vụ? Tôi có ấn tượng rằng một chu trình lệnh có thể yêu cầu nhiều chu kỳ xung nhịp (ví dụ: một chu kỳ lệnh bao gồm một chu kỳ tìm nạp và một chu kỳ thực hiện). Tôi khá chắc chắn rằng ngay cả các PIC hiện đại cũng có chu trình hướng dẫn 4 giai đoạn, đó là lý do tại sao có tất cả Fosc / 4 trong suốt bảng dữ liệu
ajs410

1
@ ajs410 - 8085 chắc chắn sẽ mất nhiều chu kỳ đồng hồ để hoàn thành một hướng dẫn; tất cả các micrô 8 bit từ thời điểm đó (mà tôi biết) đã mất ít nhất hai đồng hồ để làm bất cứ điều gì. Những gì tôi đang đề cập ở đây hoàn toàn là nội bộ của chip. Nếu bạn nhìn vào sơ đồ khối cho những con thú già này, bạn có thể thấy chúng có một số thanh cái bên trong, các thanh ghi tạm thời, v.v. và đó là những thứ mà tôi suy đoán có thể đang sử dụng cả hai cạnh. Bất kỳ chu kỳ xe buýt bên ngoài sẽ được chạy giữa các cạnh của cùng một cực.
JustJeff

6

Tại thời điểm con chip này được thiết kế, mọi người đã sử dụng càng ít bóng bán dẫn càng tốt trong CPU, để làm cho chúng đủ nhỏ để phù hợp với các chip có sẵn.

Tôi nghi ngờ rằng thực tế mọi "thanh ghi" (cả các thanh ghi tập lệnh có thể nhìn thấy của lập trình viên và cả các chốt vi kiến ​​trúc bên trong) trong một CPU của thời đại đó được lưu trữ dữ liệu trong một chốt D trong suốt hoặc một cái gì đó tương tự. Ngày nay, có rất nhiều bóng bán dẫn trên một con chip, vì vậy việc sử dụng flip-flop D-master-Slave hoàn toàn đơn giản hơn, mặc dù chúng sử dụng gấp đôi số bóng bán dẫn.

Nhiều hướng dẫn lấy dữ liệu từ một số thanh ghi A, kết hợp nó với một số dữ liệu khác với ALU và lưu lại kết quả trong thanh ghi A. Điều đó khá dễ thực hiện nếu đăng ký A được thực hiện với một flip-flop D đầy đủ.

Nhưng nếu thanh ghi A là chốt D trong suốt, bạn cần đồng hồ không chồng chéo. Bạn sử dụng một xung trên một đồng hồ để lưu trữ một số kết quả trung gian ở đâu đó (trong khi thanh ghi A giữ hằng số đầu ra của nó), và sau đó một xung trên đồng hồ khác để tải thanh ghi A với giá trị mới (trong khi thanh ghi trung gian giữ hằng số đầu ra của nó).

Điều này đòi hỏi một đồng hồ 2 pha. Cách dễ nhất để tạo ra đồng hồ 2 pha không chồng chéo (vào thời đó khi bóng bán dẫn khan hiếm) là một mạch nhỏ bên ngoài lấy đồng hồ đầu vào và chia cho hai.

Thời gian trôi qua, mọi người đã tìm ra cách đóng gói ngày càng nhiều bóng bán dẫn vào một IC. Vì vậy, những người thiết kế CPU tích hợp ngày càng nhiều thứ xung quanh CPU trong một hệ thống máy tính đầy đủ lên chip CPU.

Đọc giữa các dòng của bài báo về tín hiệu đồng hồ Wikipedia , tôi có ấn tượng rằng những người đã thiết kế 8085 và 6502 và các chip khác trong thời đại đó chỉ còn nhiều hơn một chút so với thế hệ CPU tích hợp trước đó và họ đã quyết định tốt nhất sử dụng căn phòng đó là để đặt con chip nhỏ bên ngoài đó lên chip. Nhưng họ vẫn giữ tất cả các thanh ghi cùng một chốt D như trước.

Vì vậy, đó là lý do tại sao tần số đồng hồ được chia cho hai. Bạn có thể nghĩ về xung đồng hồ bên ngoài đầu tiên tạo xung trên tín hiệu đồng hồ bên trong phase_one để cập nhật thanh ghi kết quả trung gian đó và xung thứ hai từ đồng hồ bên ngoài tạo xung trên tín hiệu đồng hồ bên trong phase_two để cập nhật thanh ghi hiển thị của lập trình viên.


Nếu một chốt sẽ không bao giờ đi quá một vài micro giây mà không được tải lại, người ta có thể đơn giản hóa mạch hơn nữa, do đó, "chốt" không gì khác hơn là một cổng thông qua bóng bán dẫn đơn và biến tần.
supercat

1
Kể từ khi viết ở trên, tôi đã xem xét thiết kế của 6502; nhiều xe buýt nội bộ được điều khiển cao vô điều kiện trên một pha đồng hồ, và sau đó trong giai đoạn đồng hồ khác, một thanh ghi được chọn có thể kéo các bit thích hợp xuống thấp. Nếu có năm thanh ghi có thể xuất ra bus, điều này có nghĩa là thay vì cần một thiết bị kéo lên cho mỗi đầu ra của thanh ghi, chip có thể chỉ cần sử dụng một thiết bị kéo lên được chuyển đổi và hai bóng bán dẫn có dây nối tiếp cho mỗi thanh ghi để kéo xe buýt xuống nếu thích hợp. Tôi mong đợi 8085 gần như chắc chắn sử dụng các thủ thuật tương tự.
supercat

2

Có rất nhiều lý do để chia chu trình hướng dẫn thành nhiều chu kỳ đồng hồ. Một ví dụ điển hình là truy cập vào bus bộ nhớ chính.

Hầu hết các bộ xử lý hiện đại là kiến ​​trúc Von-Neumann; nghĩa là, cả mã và dữ liệu của chúng đều tồn tại trong cùng một chip bộ nhớ. Chà, nếu bạn muốn đọc một hướng dẫn, và hướng dẫn đó sẽ tải một biến từ bộ nhớ ... đó là hai lần truy cập bộ nhớ. Nhưng hầu hết bộ nhớ chỉ là cổng đơn (nghĩa là nó chỉ có thể thực hiện một lần đọc hoặc ghi trên mỗi chu kỳ). Vậy làm thế nào để bạn đọc hướng dẫn đọc biến của bạn?

Giải pháp là sử dụng chu trình hướng dẫn hai giai đoạn. Giai đoạn đầu tiên sẽ lấy hướng dẫn từ bộ nhớ và giai đoạn thứ hai sau đó có thể đọc (hoặc ghi!) Biến từ bộ nhớ chính.

Một số chip cũ đã đi xa hơn. Trước đây, nếu chip của bạn có bộ nhớ có thể định địa chỉ 16 bit, nhưng bus địa chỉ bên ngoài chỉ có 8 bit, thì bạn sẽ quen với Kích hoạt chốt địa chỉ. Một chu kỳ xung nhịp gửi 8 bit trên của địa chỉ 16 bit và chu kỳ xung nhịp tiếp theo sẽ gửi 8 bit thấp hơn. Một chu kỳ thứ ba sau đó có thể đọc / ghi biến từ / vào bộ nhớ.

Có những lý do khác, tốt hơn để có một chu kỳ hướng dẫn là nhiều chu kỳ đồng hồ. Một trong những lý do tốt nhất là đường ống. Đây là một mẹo mà các bộ xử lý hiện đại sử dụng để khai thác triệt để hơn tất cả các đơn vị thực thi có sẵn trong chip; ví dụ, trong khi một lệnh đang được thực thi, thì lệnh tiếp theo sẽ được tìm nạp cùng lúc.


3
Tôi không nghĩ OP đang hỏi tại sao bạn truyền bá một hướng dẫn trên nhiều đồng hồ, nhưng tại sao 8085 được thiết kế để yêu cầu bạn cung cấp cho nó đồng hồ 2X (sau đó phân chia nội bộ) thay vì chỉ dự định tần số xung nhịp trực tiếp.
JustJeff

1
tất cả mọi thứ bạn nói về hướng dẫn là trên, mặc dù.
JustJeff

1

Bên trong, lõi của 8085A yêu cầu đồng hồ hai pha. Logic bên trong xuất phát từ hai pha đồng hồ cũng chia hai đồng hồ đầu vào cho hai. Như đã nêu trước đây, lý do sử dụng đồng hồ đầu vào 6.144 MHz là cho mục đích tốc độ baud, chip sẽ chạy tốt ở mức 6 MHz. Con chip này thực sự được đánh giá ở mức 3 MHz yêu cầu tinh thể 6 MHz, nhưng chạy rất vui với mức 6.144 MHz cho tốc độ truyền dễ dàng hơn (Một Uart có thể được xung nhịp với 6.144 MHz từ Bộ tạo dao động điều khiển 8085 hoặc 3.072 MHz từ đầu ra CLK của 8085 cung cấp nhiều tốc độ Baud có thể sử dụng). Tôi vẫn sử dụng những con chip cổ xưa này để thực hiện các chức năng đặc biệt trong một số robot của mình. Tôi đồng hồ Uarts với bộ dao động riêng của họ và tôi đồng hồ của 8085A với bộ dao động 6,4 MHz, chạy chip ở mức 3,2 MHz. 3. 2 MHz phân chia độc đáo để cung cấp xung nhịp 40KHz cho đầu dò siêu âm của tôi. Thật ý nghĩa hơn khi sử dụng các thiết bị vi mạch hiện đại hơn trong các bot của tôi, nhưng tôi có rất nhiều máy cũ 8085, Z80, 63C09 và 63C09E, 68B09 và 68B09E, v.v. mà tôi thực sự thích chơi.


0

Đồng hồ không là gì ngoài một khoảnh khắc khi bạn muốn một sự kiện xảy ra. Bây giờ, chúng tôi không thích kích hoạt mức trong các mạch kỹ thuật số vì khi có nhiều thời gian hơn, sự tương tác có thể xảy ra giữa các mạch khác nhau trong bộ vi xử lý dẫn đến ngắn mạch. Vì vậy, chúng tôi đi cho TRIGGITH EDGE. Bây giờ, bộ vi xử lý không biết khi nào kích hoạt cạnh đã xảy ra. Nó chỉ hiểu 1 hoặc 0. Vì vậy, một flip flop được yêu cầu để tạo ra 1 và 0 bất cứ khi nào một cạnh đồng hồ được phát hiện. Vì vậy, nó trở nên cần thiết để sử dụng một flip flop. Kết quả là tần số đồng hồ được chia cho hai.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.