WDC 65C816 - WDC 65C816

65C816
W65C816S8PG-14 lg.jpg
PDIP40 paketinde W65C816S
Genel bilgi
başlatıldı 1983 ; 38 yıl önce ( 1983 )
Ortak üretici(ler)
Verim
Maks. CPU saat hızı 1 MHz ila 14 MHz
veri genişliği
Adres genişliği 24
Mimari ve sınıflandırma
Komut seti 6502
Talimatlar 92
Fiziksel Özellikler
Paket(ler)
Tarih
selefi

W65C816S (ayrıca 65C816 veya 65816 ) 8/16-bit mikroişlemci tarafından geliştirilen ve satılan (MPU) Batı Tasarım Merkezi'nin (WDC). 1983 yılında tanıtılan W65C816S, WDC 65C02 8-bit MPU'nun geliştirilmiş bir versiyonudur , kendisi de saygıdeğer MOS Teknolojisi 6502 NMOS MPU'nun bir CMOS geliştirmesidir . 65C816, Apple IIGS için CPU ve değiştirilmiş formda Süper Nintendo Eğlence Sistemi idi .

65 parçanın tanımında da 65C02 uyumluluk modunda gelir ve 816 MPU seçilebilir 8- ve 16-bit olduğunu belirten yazmaç boyutları. 16-bit kayıt durumu yanı sıra, W65C816S genişletilmiş özellikler bellek adresleme için 24 bit 16 destekleyen, megabayt ve rasgele erişimli bellek , gelişmiş bir talimat seti ve 16 bitlik bir yığın işaretçisi , hem de çok sayıda yeni elektrik sinyalleri gelişmiş sistem donanım yönetimi için.

At sıfırlama , W65C816S o ölçüde bir 65C02 gibi hareket eder, yani "öykünme modunda" başlar. Bundan sonra, W65C816S iki komut dizisiyle "yerel moda" geçirilebilir, bu da onun tüm gelişmiş özellikleri etkinleştirmesine, ancak yine de çoğu 65C02 yazılımıyla önemli ölçüde geriye dönük uyumluluğu korumasına neden olur . Bununla birlikte, NMOS atası için pin uyumlu bir yedek olan 65C02'nin PDIP40 versiyonunun aksine, PDIP40 W65C816S, diğer 6502 aile MPU'ları ile pin uyumlu değildir.

W65C816S etmektir İlgili W65C802 aynı iç yapısını ve 16 bit desteği vardı, fakat 40 pinli Bu bir damla-in yerine belirli roller olarak kullanılmasına izin orijinal 6502. uyumlu düzeni kullanılır. Ancak 65C802, 64 KB bellekle sınırlayan tam 24 bitlik bir adres yayamazdı. 65C802 ve akrabaları artık üretilmiyor.

Tarih

Tek kartlı bir bilgisayara monte edilmiş olarak gösterilen W65C816S mikroişlemcinin PLCC-44 versiyonu .

1981 yılında , WDC'nin kurucusu ve CEO'su Bill Mensch , başta Rockwell Semiconductor ve Synertek olmak üzere üretim ortaklarıyla birlikte 65C02'yi geliştirmeye başladı . 65C02 çalışmasının birincil amacı, orijinal 6502'nin NMOS sürecinden 65C02'nin CMOS'una geçmekti; bu , aynı saat hızlarında çalışırken 110 ve 120 arasında bir yerde, çok daha düşük güç seviyelerinde çalışmasına izin verecekti . Tasarımda bir dizi yeni işlem kodu ve hata düzeltmesi de yapıldı.

W65C816S'nin geliştirilmesi, Mensch'in Apple II serisi kişisel bilgisayarların , diğer şeylerin yanı sıra gelişmiş grafiklere ve sese sahip olacak yeni bir sürümü üzerinde Apple Computer ile görüşmesinden sonra 1982'de başladı . Apple, o zamanlar Apple II'de kullanılan 6502 ile uyumlu, ancak daha fazla belleğe hitap edebilen ve 16 bit sözcükleri yükleyip depolayabilen bir MPU istiyordu. Sonuç Apple ve hem sağlanan örnekleri ile, Mart 1984'de bitmiş 65C816 oldu Atari 1985 Mensch parçası sorumluydu kız kardeşi Kathryn tarafından dizayn sürecinde destekli edildi yıl ve tam sürüm ikinci yarısında cihazın düzeni.

Aynı süreç, 65C816 ile aynı olan 65C802'ye de yol açtı. Her ikisi de aynı üretim hatlarında üretildi ve yalnızca çipin harici pimlere bağlandığı son metalleştirme aşamalarında ayrıldı. 65C802'de, bu pinler orijinal 6502 ile aynı düzene sahipti, bu da onun bir drop-in yedeği olarak kullanılmasına izin verirken hala CPU'nun 16-bit işlenmesinin kullanılmasına izin veriyordu. Ancak, orijinal pin çıkışını kullandığından sadece 16 adresleme pinine sahipti ve bu nedenle sadece 64 KB harici belleğe erişebiliyordu. Tipik olarak, donanım üreticileri bir projeyi sıfırdan tasarlarken, 65C802 yerine 65C816'yı kullandılar ve bu da 65C802'nin üretimden çekilmesine neden oldu.

Apple daha sonra 65C816'yı Apple IIGS bilgisayarına entegre etti . Temel 65C816 tasarımı, 1980'lerin ortasından 1990'ların başlarına kadar GTE , Sanyo ve diğerleri tarafından ikinci olarak tedarik edildi .

1990'larda hem 65C816 hem de 65C02 tamamen statik bir çekirdeğe dönüştürüldü , bu da işlemcinin Ø2 saatini kayıt içeriği kaybı olmadan tamamen durdurmayı mümkün kıldı . Bu özellik, asenkron statik RAM kullanımı ile birlikte, bekleme durumunda minimum güç kullanan tasarımlar üretmeyi mümkün kıldı.

2021 itibariyle W65C816S 40 piminin wdc edinilebilir PDIP , PLCC44 ya da 44-pin TQFP ambalaj yanı sıra için bir çekirdek ASIC , (örneğin entegre Winbond televizyon 's W55V9x serisi Edutainment IC ). Kendisi de efsanevi bir yarı iletken şirketi olan WDC, W65C816S'nin yanı sıra diğer uyumlu ürünleri üretmek için çeşitli dökümhanelerle birlikte çalışır . Ayrık işlemciler, bir dizi elektronik distribütörü aracılığıyla temin edilebilir. Özel bir içine W65C816S işlevselliği dahil etmek isteyen tasarımcılar için ASIC , WDC teklifler RTL ( kayıt aktarım düzeyi ) kodunu Verilog .

W65C802P

Özellikleri

WDC 65816 kayıtları
2 3 2 2 2 1 2 0 1 9 1 8 1 7 1 6 1 5 1 4 1 3 1 2 1 1 1 0 0 9 0 8 0 7 0 6 0 5 0 4 0 3 0 2 0 1 0 0 (bit konumu)
Ana kayıtlar
B A akümülatörler
Dizin kayıtları
x X indeksi
Y Y indeksi
0 0 0 0 0 0 0 0 DP D irect P yaş yazmacı
0 0 0 0 0 0 0 0 SP S yapışmayan P ointer
DB 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 D ata B ank kayıt
Program sayıcı
PB bilgisayar P rogram Sayaç
Durum kaydı
n V m x NS ben Z C S URUMU R egister

WDC 65816 özellikleri:

  • Tamamen statik CMOS tasarım teklifler düşük güç tüketimi (300  μ A 1'deki  MHz ) ve artan gürültü bağışıklığı.
  • Geniş çalışma voltajı aralığı: 1,8 V ila 5,0 V ± %5.
  • Geniş çalışma frekans aralığı, resmi olarak maksimum 5 voltta 14 MHz, tek fazlı bir saat kaynağı kullanarak (hobiciler 65C816'yı 20 MHz'in ötesinde başarıyla çalıştırdı).
  • Öykünme modu, belgelenmemiş işlem kodları dışında NMOS 6502 ve CMOS 65C02 ile önemli yazılım uyumluluğu sağlar . 65C816'daki 256 işlem kodunun tamamı her iki çalışma modunda da işlevseldir.
  • 24 bit bellek adresleme, 16 MB bellek alanına erişim sağlar .
  • 16 bit ALU , akümülatör (A), yığın işaretçisi (SP) ve dizin kayıtları (X ve Y).
  • 16-bit Doğrudan Sayfa (aka sıfır sayfa) kaydı (DP).
  • 8-bit veri bankası (DB) ve program bankası (PB) kayıtları, 24-bit kod ve veri adreslerinin 16-23 bitlerini üretir. Ayrı program ve veri bankası kayıtları, program segmentasyonuna ve 16 MB doğrusal veri adreslemeye izin verir .
  • Bellek yeterliliği, çift önbellek ve çevrim çalma DMA uygulaması için geçerli veri adresi (VDA) ve geçerli program adresi (VPA) kontrol çıkışları .
  • Bir kesme vektörünün ne zaman getirildiğini belirtmek için vektör çekme (VPB) kontrol çıkışı .
  • Durdurma (ABORTB) girişi ve ilgili vektör, sayfa hataları ve bellek erişim ihlalleri gibi veri yolu hatası durumlarının işlemci onarımlarını destekler .
  • Doğrudan yazmaç ve yığın göreli adresleme, yeniden girişli , özyinelemeli ve yeniden konumlandırılabilir programlama için yetenek sağlar .
  • 24 adresleme modu — 65C02'de uygulanan çoğu yeni işlem kodu dahil olmak üzere 256 işlem kodu kullanan 92 talimatlı 13 orijinal 6502 modu .
  • Blok kopyalama talimatları, veri yapılarının minimum kodla RAM'in bir alanından diğerine hızlı bir şekilde kopyalanmasını sağlar .
  • Kesintiyi Bekle (WAI) ve Saati Durdurma (STP) talimatları , güç tüketimini daha da azaltır , kesinti gecikmesini azaltır ve harici olaylarla senkronizasyona izin verir.
  • İlişkili vektöre sahip Yardımcı İşlemci (COP) talimatı, yardımcı işlemci yapılandırmalarını destekler, örneğin kayan noktalı işlemciler
  • Gelecekteki iki baytlık işlem kodları için ayrılmış "kaçış" (WDM) talimatı ve gelecekteki tasarımlara bir bağlantı. (WDM, W65C816S tasarımcısı William D. Mensch'in baş harfleridir .)

Önceki modellerle karşılaştırma

iki mod

65C816'nın iki çalışma modu vardır: 16 bitlik işlemlerin görünmez olduğu "emülasyon modu" - indeks yazmaçları sekiz bite zorlanır - ve çip 65C02'ye çok benzer görünür ve aynı döngü zamanlamalarına sahiptir. işlem kodları; ve tüm yeni özellikleri ortaya çıkaran "yerel mod". CPU, açıldığında veya sıfırlandığında otomatik olarak öykünme moduna girer; bu, birinin farklı pin düzenine uyum sağlamak için gerekli devre değişikliklerini yaptığı varsayılarak, 65C02'nin yerini almasına izin verir.

16 bitlik kayıtlar

Yerel modda çalışırken 65C816'daki en belirgin değişiklik, çeşitli kayıtların 8 bitten 16 bit boyuta genişletilmesidir. Bu geliştirme, akümülatörü (A), X ve Y dizin kayıtlarını ve yığın işaretçisini (SP) etkiler . Her zaman 16 bit olan program sayacını (PC) etkilemez .

Yerel modda çalışırken, durum kaydındaki iki bit anlamlarını değiştirir. Orijinal 6502'de, bit 4, B(reak) bayrağı olarak anılsa da, bit 4 ve 5 kullanılmamıştır. Yerel modda, bit 4 x bayrağı olur ve bit 5 m bayrağı olur. Bu bitler, indeks kayıtlarının (x) ve/veya akümülatör/bellek (m) boyutunun 8 bit mi yoksa 16 bit mi olduğunu kontrol eder. Bu bitlerdeki sıfırlar 16 bit boyutları, birler 8 bit boyutları belirler. Bu bitler, işlemci açıldığında veya sıfırlandığında olanlarda sabitlenir, ancak işlemci yerel moda geçtiğinde değiştirilebilir hale gelir.

Şimdiki 16-bitlik kayıtları neden 8-bit modunda kullanmak isteyebileceği hemen belli olmayabilir. Yeni SEP(İşlemci durumundaki SEt biti) ve REP(REset) komutlarını kullanarak 8 bit moduna geçmek, bu kayıtlara erişen sonraki tüm talimatların iki yerine yalnızca tek bir bayt okuyacağı veya yazacağı anlamına gelir. Örneğin, bir LDA $1234talimat yürütüldüğünde m biti 1'e ayarlanırsa , 1234 $ adresindeki yalnızca tek bir bayt okunacak ve böylece talimatı yürütmek için gereken döngü sayısı azaltılacaktır. Bu, örneğin 8 bitlik karakter verileriyle uğraşırken özellikle yararlıdır.

Kayıt boyutları 16 bit olarak ayarlandığında, bellek erişimi, fazladan bir saat döngüsü pahasına iki bitişik bayt belleğe erişecektir. Ayrıca, ROR <addr>akümülatör 16 bite ayarlıyken kullanıldığında gibi bir oku-değiştir-yaz talimatı , bir değil iki bitişik bellek baytını etkiler. Benzer şekilde, tüm aritmetik ve mantıksal işlemler 16 bitlik işlemler olacaktır.

24 bit adresleme

Yerel modda çalışırken sistemdeki diğer büyük değişiklik, bellek modelinin 6502'nin orijinal 16 bit biçiminden 24 bit biçimine genişletilmesidir. 65C816, 24 bit adresler üretir ve iki kayıttan yararlanır, etkin adresin 16–23 bitlerini ayarlamak için veri bankası kaydı ( DB) ve program bankası kaydı ( PB). Her iki durumda da, 'banka', adres aralığı ile sınırlanan , banka adresinin, yani etkin adresin 16-23 bitlerinin $bb0000-$bbFFFFbulunduğu bitişik 64 KB'lık bir bellek segmentini ifade eder bb. Hem DBve PBbaşlatılır $00güç-veya Resettensonra.

Bir işlem kodu veya işlenen getirme döngüsü sırasında , 24 bit etkin adresi oluşturmak için program sayacına ( ) PBeklenir . Meli (sıfıra dönüş) "wrap", artırılır edilmeyecektir. Dolayısıyla bir program, içinde yürütüldüğü bankanın sınırları ile sınırlıdır. Bu bellek modelinin ima ettiği, başka bir bankada kodu yürütmek için "uzun" atlamalar veya alt program çağrıları kullanılmadıkça, şube ve alt rutin hedeflerinin şubeyi veya çağrıyı yapan talimatla aynı bankada olması gerektiğidir. Doğrudan değiştirilebilecek hiçbir programatik araç yoktur . PCPCPBPB

Bir veri getirme veya depolama döngüsü sırasında, verilere DBerişilecek 24 bitlik etkin adresi oluşturmak için 16 bitlik bir veri adresinin önüne eklenir. Bu işlemci özelliği, veri öğelerine referans vermek için 16 bit adresleri kullanan 6502 veya 65C02 kodunu akıllıca yürütmeyi mümkün kılar. aksine PB, DBprogram kontrolü altında değiştirilebilir, 16 bit adresleme sınırlarının ötesinde verilere erişmek için yapılabilecek bir şey. Ayrıca, DBbir adres şu anda içinde bulunan bankanın sınırlarının ötesinde endekslenirse geçici olarak artacaktır DB. DBbir veri alma/depolama talimatının işleneni olarak 24 bitlik bir adres belirtilirse veya etkin adres doğrudan (sıfır) sayfada veya donanım yığınındaysa yoksayılır . İkinci durumda, etkin adresi oluşturmak için zımni bir banka $ 00 kullanılır.

Kayıt kümesine ek bir ek DP, daha önce sıfır sayfa olarak adlandırılan, ancak şimdi doğrudan sayfa olarak adlandırılan şeyin temel adresini ayarlayan 16 bitlik doğrudan sayfa kaydıdır ( ) . Doğrudan sayfa adresleme, 8 bitlik bir adres kullanır, bu da 16 veya 24 bitlik bir adres kullanıldığında olduğundan daha hızlı erişim sağlar. Ayrıca, dolaylı yönlendirme sunan bazı adresleme modları yalnızca doğrudan sayfada mümkündür. 65(C)02'de, doğrudan sayfa her zaman belleğin ilk 256 baytıdır, dolayısıyla "sıfır sayfa"dır. Yerel modda, 65C816 $00, 16 bitlik başlangıç ​​adresini DP. DPÇift sayfa sınırına ayarlanmadıysa, tek döngülü erişim cezası vardır .

Modlar arasında geçiş yapma

Geçerli çalışma modu, öykünme (E) bitinde saklanır. Durum kaydındaki (SR) önceki altı bayrak grubuna yeni x ve m bitlerini zaten ekledikten sonra, yeni mod bitini tutmak için yeterli bit kalmamıştı. Bunun yerine, mod bitinin "görünmez" bırakıldığı ve doğrudan erişilemediği benzersiz bir çözüm kullanıldı. Yeni XCE(eXchange Carry with Emulation) komutu, öykünme bitinin değerini durum kaydındaki C(arry) biti, bit 0 ile değiştirir. Örneğin, işlemci başlatıldıktan sonra yerel moda girmek CLCistenirse, Taşıma bitini TEMİZLEMEk ve ardından XCEöykünme bitine yazmak için kullanılır. 65C02 öykünme moduna geri dönersek, SECardından XCE.

Dahili olarak, 65C816 tamamen 16 bitlik bir tasarımdır. SR'deki m ve x bitleri, kullanıcının kayıtlarının (akümülatör ve indeks) sistemin geri kalanına nasıl görüneceğini belirler. Sıfırlamanın ardından 65C816, m ve x'in 1'e ayarlandığı ve değiştirilemediği 65C02 öykünme modunda başlar. Bu nedenle, kayıtlar sistemin geri kalanına 8 bit olarak görünür. Akümülatörün (B akümülatörü) en önemli baytı (MSB) doğrudan erişilebilir değildir, ancak XBAtalimat kullanılarak akümülatörün (A akümülatörü) en az anlamlı bayt (LSB) ile değiştirilebilir . İndeks kayıtları (.X ve .Y) için karşılık gelen bir işlem yoktur.

Yerel moda geçildiğinde, .X ve .Y'nin MSB'si sıfır olacak ve B-akümülatörü değişmeyecektir. SR'deki m biti temizlenirse, B-akümülatörü, 16-bitlik bir kayıt oluşturmak için A-akümülatörüne "bağlanır". Akümülatörü ve/veya belleği içeren bir yükleme/depolama veya aritmetik/mantıksal işlem 16 bitlik bir işlem olacaktır—16 bitlik bir değeri almak/saklamak için iki veri yolu döngüsü gerekir.

SR'deki x biti temizlenirse, her iki dizin kaydı da 16 bite ayarlanacaktır. Bir adresi indekslemek için kullanılırsa, örneğin, LDA SOMEWHERE,Xindeks kaydındaki 16 bitlik değer, etkin adresi oluşturmak için temel adrese eklenecektir.

SR'deki m biti ayarlanırsa, akümülatör 8 bitlik bir yazmaç haline dönecek ve akümülatör üzerindeki sonraki işlemler, birkaç istisna dışında, 8 bitlik işlemler olacaktır. B-akümülatörü, akümülatör 16-bit modunda çalışırken sahip olduğu değeri koruyacaktır. İstisnalar, doğrudan sayfa kaydı (DP) ve yığın işaretçisini (SP) akümülatöre/toplayıcıdan aktaran talimatlardır. Bu işlemler, durum kaydındaki m bitinin durumundan bağımsız olarak, yerel modda her zaman 16 bit genişliğindedir.

SR'deki x biti ayarlanırsa, dizin kayıtları yalnızca 8 bit olmaya geri dönmekle kalmaz, 16 bit modunda MSB'de ne varsa kaybolur, bir Assembly dili programcısının unutmayı göze alamayacağı bir şeydir.

Uygulamalar

65816 varyantlarına dayalı sistemler:

Ayrıca Commodore 64 için C-One ve SuperCPU geliştirmelerinde de kullanılır .

Ayrıca bakınız

Referanslar

alıntılar

bibliyografya

  • Gözler, David; Lichty, Ron (1986). 65816'nın programlanması - 6502, 65C02, 65802 dahil . Prentice Salonu. ISBN'si 978-0893037895.

daha fazla okuma

Dış bağlantılar

Bu makale, 1 Kasım 2008'den önce Ücretsiz Çevrimiçi Hesaplama Sözlüğü'nden alınan ve GFDL , sürüm 1.3 veya sonraki sürümlerin "yeniden lisanslama" koşulları altında dahil edilen materyale dayanmaktadır .