Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO ■PCMC(PCI,Cache & Memory Controller) ベンダID 8086h(Intel) デバイスID 04A3h ベースクラス 06h(ブリッヂデバイス) サブクラス 00h(PCI-HOST CPUブリッヂ) 用語 PCIコンフィギュレーションレジスタ o 82434(PCMC)の各種設定を行う目的で使用される。 o PCIコンフィギュレーションレジスタは、コンフィギュレーションメカニズム#1 選択時、CPUのI/O空間のI/O C000〜CFFFhにマッピングされる。 関連 I/O 0CF8h I/O 0CF9h I/O 0CFAh I/O C000〜CFFFh I/O 0CF8h,0CFCh ------------------------------------------------------------------------------- PCI 00h,01h 名前 ベンダID(VID) Undocumented 機能 [READ] bit 15〜0: ベンダID(VID * Intel社のベンダIDは8086hである。 解説 o PCMCのベンダIDを返す。このレジスタはリードオンリである。 PCI 02h,03h 名前 デバイスID(DID) Undocumented 機能 [READ] bit 15〜0: デバイスID(DID) * Intel社のPCMC(82434LX・NX)のデバイスIDは04A3hである。 解説 o 82434(PCMC)のデバイスIDを返す。このレジスタはリードオンリである。 PCI 04h,05h 名前 コマンドレジスタ(PCICMD) Undocumented 機能 [READ/WRITE] bit 15〜9: Reserved bit 8: SERR#イネーブル(SERRE) 1= Enabled 0= Disenabled bit 7: Reserved bit 6: パリティエラーイネーブル(PERRE) 1= Support parity checking on PCI 0= No Parity checking on PCI bit 5〜3: Reserved bit 2: バスマスタイネーブル(BME) 1= Enabled 0= Disenabled * このビットはリードオンリである。 常にEnabledである。 bit 1: メモリアクセスイネーブル(MAE) 1= Enabled 0= Disenabled bit 0: I/Oアクセスイネーブル(IOAE) 1= Enabled 0= Disenabled * このビットはリードオンリである。 常にDisenabledである。 解説 o PCMCの基本的能力を設定する。 PCI 06h,07h 名前 ステータスレジスタ(PCISTS) Undocumented 機能 [READ/WRITE] bit 15: Reserved bit 14: システムエラー伝達(SSE) 1= SERR# asserted by PCMC 0= SERR# not asserted by PCMC bit 13: マスタアボート受信ステータス(RMAS) 1= Master abort 0= No master abort bit 12: ターゲットアボート受信ステータス(RTAS) 1= Target abort 0= No target abort bit 11: Reserved bit 10,9: DEVSEL#タイミング(DEVT) * このビットはリードオンリである。常に10bである。 bit 8: データパリティ検出(DPD) 1= PCI Data Parity Error Detected 0= No PCI Data Parity Error Detected bit 7〜0: Reserved 解説 o PCIバスのエラー等のステータスを読み出す。 PCI 08h 名前 リビジョンID(RID) Undocumented 機能 [READ] bit 7〜0: リビジョンID(RID) 03h= 82434LX A-3ステッピング 10h= 82434NX A-0ステッピング 11h= 82434NX A-1ステッピング * PCMCのリビジョンIDを返す。 解説 o 82434(PCMC)のリビジョンIDを返す。このレジスタはリードオンリである。 u PC-9821Xt・Xaに搭載されている82434NX PCMCは、リビジョンIDが10hのA-0 ステップと、リビジョンIDが11hのA-1ステップのものが混在して流通して いる。82434NX A-0ステップでは、メモリへのポスティングが使用できない。 PCI 09h 名前 レジスタレベルプログラミングインタフェース(RLPI) Undocumented 機能 [READ] bit 7〜0: レジスタレベルプログラミングインタフェース(RLPI) * PCMCは00hを返す。 解説 o PCMCがレジスタレベルプログラミングインタフェースを持たない事を示す。 このレジスタはリードオンリである。 PCI 0Ah 名前 サブクラスコード(SCCD) Undocumented 機能 [READ] bit 7〜0: サブクラスコード(SCCD) * PCMCは00hを返す。 解説 o PCMCがホストCPUとPCIバスのブリッジデバイスであることを示す。 このレジスタはリードオンリである。 PCI 0Bh 名前 ベースクラスコード(BCCD) Undocumented 機能 [READ] bit 7〜0: ベースクラスコード(BCCD) * 初期値06h 解説 o PCMCがブリッジデバイスであることを示す。 このレジスタはリードオンリである。 PCI 0Dh 名前 マスタレイテンシタイマ(MLT) Undocumented 機能 [READ/WRITE] bit 7〜4: マスタレイテンシタイマカウント値 bit 3〜0: Reserved 解説 o PCMCのPCIバス占有時間を設定する。 PCI 0Fh 名前 BISTレジスタ(BIST) Undocumented 機能 [READ] bit 7: BISTサポート bit 6: BIST開始 bit 5,4: Reserved bit 3〜0: 完了コード 解説 o 82434LX・NXではBIST(Bulid In Self Test)はサポートされていないので、 常に00hが読み出される。 PCI 50h 名前 ホストCPU選択(HCS) Undocumented 機能 [READ/WRITE] bit 7〜5: ホストCPUタイプ(HCT) 100b= Pentium Processor 60MHz/66MHz(P5)■[82434LX] 101b= Pentium Processor 90MHz/100MHz(P54C)■[82434NX] * この3ビットはリードオンリである。 bit 4,3: Reserved bit 2: 1次レベルキャッシュイネーブル(FLCE) 1= Enabled 0= Disenabled bit 1,0: ホスト動作周波数(HOF) ■[82434LX] 00b= 60MHz 01b= 66MHz 10b= 未定義 11b= 未定義 ■[82434NX] 00b= 50MHz 01b= 予約 10b= 60MHz 11b= 66MHz 解説 o ホストCPUを選択する。 o DRAMリフレッシュレートは、bit 1,0の値によって調整される。 PCI 51h 名前 デターボ周波数制御(DFC) Undocumented 機能 [READ/WRITE] bit 7,6: デターボモード周波数調整値 00b= Reserved 01b= 低速 10b= 中速 11b= 高速 bit 5〜0: Reserved 解説 o CPUのAHOLD端子でCPUにウェイトをかけるとき、AHOLDをアサートする割合 を設定する。 PCI 52h 名前 2次キャッシュ制御(SCC) Undocumented 機能 [READ/WRITE] bit 7,6: 2次キャッシュサイズ(SCS) 00b= キャッシュの実装無し 01b= Reserved 10b= 256KB 11b= 512KB bit 5: SRAMタイプ(SRAMT) 1= バーストSRAM 0= 標準SRAM bit 4: 2次キャッシュ割り当て(SCA) 1= CACHE# Active or Inactive 0= CACHE# Active bit 3: キャッシュバイト制御(CBC) 1= Byte Write Enable 0= Byte Select bit 2: SRAM接続(SRAMC)■[82434NX] bit 1: 2次キャッシュ書込みポリシー(SCWP)■[82434LX] 1= ライトバック 0= ライトスルー bit 0: 2次キャッシュイネーブル(SCE) 1= 2次キャッシュ有効 0= 2次キャッシュ無効 解説 o 2次キャッシュの設定を行う。 o 82434NXでは、2次キャッシュはつねにライトバック動作を行う。 PCI 53h 名前 ホスト読取り/書込みバッファ制御(HBC) Undocumented 機能 [READ/WRITE] bit 7〜4: Reserved bit 3: リードアラウンドライトイネーブル(RAWCM) 1= Enabled 0= Disenabled bit 2: Reserved bit 1: ホストからPCIへのポスティングイネーブル(HPPE) 1= Enabled 0= Disenabled bit 0: ホストからメモリへのポスティングイネーブル(HMPE) ■[82434LX] 1= Enabled 0= Disenabled ■[82434NX A-0ステップ] 1= 設定禁止 0= Disenabled(常に0にする) ■[82434NX A-1ステップ以降] 1= Enable 0= Enable 解説 o 82433(LBX)内のライトバッファを有効にするかどうかの設定を行う。 u 82434NXのA-1ステップ以降では、bit 0の設定にかかわらず常にホストから メモリへのポスティングがイネーブルであり、LBXポスティング内でのホス トから主メモリへの書き込みデータがポスティングされる。しかし、82434NX のA-0ステップでは、ホストからのメモリへのポスティングを使用するこ とは出来ないので、bit 0には0を設定する必要がある。PC-9821Xt・Xaでは、 82434NXのA-0ステップとA-1ステップが混在して流通しているため、リビ ジョンIDを参照して適切に設定してやる必要がある。 PCI 54h 名前 PCI読取り/書込みバッファ制御(PBC) Undocumented 機能 [READ/WRITE] bit 7〜3: Reserved bit 2: LBXのTRDY#への接続 1= LBXs are connected to TRDY# 0= LBXs are not connected to TRDY# bit 1: PCIバースト書込みイネーブル(PBWE) 1= Enabled 0= Disenabled bit 0: PCIからメモリへのポスティングイネーブル(PMPE) ■[82434LX, 82434NX A-1ステップ以降] 1= Enabled 0= Disenabled ■[82434NX A-0ステップ] 1= 設定禁止 0= Disenabled(常に0にする) 解説 o PCI to Memoryの転送を許可/禁止する。 o CPU to PCIのシングル転送をPCIバーストサイクルに集約するかどうかの 設定を行う。 u 82434NXのA-0ステップでは、PCIからメモリへの書き込みサイクルをポス ティングを出来ないので、bit 0には0を設定する必要がある。PC-9821Xt・Xa では、82434NXのA-0ステップとA-1ステップが混在して流通しているため、 リビジョンIDを参照して適切に設定してやる必要がある。 PCI 55h 名前 2次キャッシュ制御拡張レジスタ(SCCE) Undocumented 対象 82434NX搭載機種 機能 [READ/WRITE] bit 7〜1: Reserved bit 0: ゼロウェイトステート(ZWS) ----+------------+------------+------------- ZWS | |バーストSRAM|標準SRAM ----+------------+------------+------------- 1 |読取りヒット|2-1-1-1 |2-2-2-2 |書込みヒット|2-1-1-1 |3-2-2-2 ----+------------+------------+------------- 0 |読取りヒット|3-1-1-1 |3-2-2-2 |書込みヒット|3-1-1-1 |4-2-2-2 ----+------------+------------+------------- * CPUクロックが60MHz,66MHz時は、0を設定する。 解説 o 2次キャッシュヒットの先頭データ転送時のウェイトステート数を設定する。 PCI 57h 名前 DRAM制御 Undocumented 機能 [READ/WRITE] bit 7,6: DRAMバーストタイミング(DBT)■[82434NX] 00b= X-4-4-4リード/ライト 01b= X-4-4-4リード,X-3-3-3ライト 10b= Reseved 11b= X-3-3-3リード/ライト bit 5: パリティエラーマスク(PERRM) 1= Enabled 0= Disenabled bit 4: 0アクティブRAS#モード 1= 0-Active RAS# Mode 0= 1-Active RAS# Mode bit 3: SMRAMイネーブル(SMRE) 1= Enabled 0= Disenabled bit 2: 4リフレッシュバースト(BFR) 1= Burst of four refresh 0= Single refresh bit 1: リフレッシュタイプ(RT) 1= CAS# Before RAS# refresh 0= RAS# only refresh bit 0: リフレッシュイネーブル(RE) 1= Enabled 0= Disenabled 解説 o DRAMコントローラの設定を行う。 PCI 58h 名前 DRAMタイミング(DT) Undocumented 機能 [READ/WRITE] bit 7〜2: Reserved bit 1: RAS#ウェイトステート(RWS)■[82434NX] 1= 1ウェイト 0= 0ウェイト * PC-9821Xt・Xaでは0が設定される。 bit 0: CAS#ウェイトステート(CWS) 1= 1ウェイト 0= 0ウェイト * PC-9821Xt・Xaでは0が設定される。 解説 o CPUがDRAMをアクセスする時に、CPUに対してウェイトを追加するかどうかの 設定を行う。 PCI 59〜5Fh 名前 プログラム可能属性マップ(PAM) Undocumented 機能 [READ/WRITE] bit 7: R(Reserved) * リザーブ bit 6: CE(CacheEnable) 1= キャッシュ可能 0= キャッシュ不可 bit 5: WE(WriteEnable) 1= 書き込み可能 0= 書き込み不可 bit 4: RE(ReadEnable) 1= 読みだし可能 0= 読みだし不可 bit 3〜0: R,CE,WE,RE * bit 7〜4と同じ 各レジスタで設定するメモリの範囲は以下の通りである。 ----------------+-------+------------------------------- レジスタ |ビット |メモリ範囲 ----------------+-------+------------------------------- 59h |3〜0 |080000〜09FFFFh(メモリウィンドウ) 59h |7〜4 |0F0000〜0FFFFFh(BIOSエリア) 5Ah |3〜0 |0C0000〜0C3FFFh(拡張ROMエリア) 5Ah |7〜4 |0C4000〜0C7FFFh(拡張ROMエリア) 5Bh |3〜0 |0C8000〜0CBFFFh(拡張ROMエリア) 5Bh |7〜4 |0CC000〜0CFFFFh(拡張ROMエリア) 5Ch |3〜0 |0D0000〜0D3FFFh(拡張ROMエリア) 5Ch |7〜4 |0D4000〜0D7FFFh(拡張ROMエリア) 5Dh |3〜0 |0D8000〜0DBFFFh(拡張ROMエリア) 5Dh |7〜4 |0DC000〜0DFFFFh(拡張ROMエリア) 5Eh |3〜0 |0E0000〜0E3FFFh(VRAMエリア) 5Eh |7〜4 |0E4000〜0E7FFFh(VRAMエリア) 5Fh |3〜0 |0E8000〜0EBFFFh(BIOSエリア) 5Fh |7〜4 |0EC000〜0EFFFFh(BIOSエリア) ----------------+-------+------------------------------- bit 7〜4またはbit 3〜0に設定する組み合わせは以下のように行う。 ----------------+-------------------------------------------------- bit 7〜4または | bit 3〜0の値 |動作 ----------------+-------------------------------------------------- xx00b |DRAM無効, PCIバスに直接アクセス x001b |リードオンリ, DRAMライトプロテクト, キャッシュ禁止 x101b |リードオンリ, DRAMライトプロテクト, キャッシュ許可 x010b |ライトオンリ x011b |リードライト許可, キャッシュ禁止 x111b |リードライト許可, キャッシュ許可 ----------------+-------------------------------------------------- 解説 o 各レジスタに設定された特定のメモリエリアについて、メモリアクセスの 動作を設定する。 u PC-9821X-B02 SCSI-2インタフェースボードでは、PCMCのこのコンフィギュ レーションレジスタを操作して、SCSI BIOSがあるPCI EXTENDED MEMORYを リードライト可能に設定してする。これはSCSI BIOSがワークエリアに使用 するためである。 PCI 60〜65h■[82434LX] PCI 60〜67h■[82434NX] 名前 DRAMロー境界レジスタ(DRB) Undocumented 機能 [READ/WRITE] bit 7〜0: Row Boundary Address in MBytes 各レジスタの名称と設定値 --------+-------+---------------------------------------- レジスタ|名称 |設定値 --------+-------+---------------------------------------- 60h |DRB0 |ROW#0のメモリ容量(MB) 61h |DRB1 |ROW#0,#1の合計メモリ容量(MB) 62h |DRB2 |ROW#0〜2の合計メモリ容量(MB) 63h |DRB3 |ROW#0〜3の合計メモリ容量(MB) 64h |DRB4 |ROW#0〜4の合計メモリ容量(MB) 65h |DRB5 |ROW#0〜5の合計メモリ容量(MB) 66h |DRB6 |ROW#0〜6の合計メモリ容量(MB)■[82434NXのみ] 67h |DRB7 |ROW#0〜7の合計メモリ容量(MB)■[82434NXのみ] --------+-------+---------------------------------------- 図:SIMMソケットとロウバウンダリの対応 --------+-----------------------+--------------- RAS |ソケット(Side) |レジスタ --------+-----------------------+--------------- RAS#7 |#7(Back), #6(Back) |DRB7■[82434NXのみ] RAS#6 |#7(Front),#6(Front) |DRB6■[82434NXのみ] --------+-----------------------+--------------- RAS#5 |#5(Back), #4(Back) |DRB5 RAS#4 |#5(Front),#4(Front) |DRB4 --------+-----------------------+--------------- RAS#3 |#3(Back), #2(Back) |DRB3 RAS#2 |#3(Front),#2(Front) |DRB2 --------+-----------------------+--------------- RAS#1 |#1(Back), #0(Back) |DRB1 RAS#0 |#1(Front),#0(Front) |DRB0 --------+-----------------------+--------------- * 72ピンSIMMは32ビット幅であるため、64ビット幅にするためにSIMMは 偶数枚ずつ装着しなくてはならない。 * 4MB,16MBのSIMMでは、偶数番目のRASのみが使用される。この場合、 DRBn+1にはDRBnと同じ値を設定する。 解説 o 82434LXは6つ、82434NXは8つのDRAMロウアドレスを制御する。 o このレジスタで、SIMMソケットに装着された各メモリについて、アドレスを 設定する。 o 一つの物理SIMMソケットは2つの論理SIMMソケットで構成され、2MB,8MB,32MB のSIMMが使用可能である。 PCI 68〜6Bh■[82434NX] 名前 DRAMロー境界拡張レジスタ(DRB) Undocumented 機能 [READ/WRITE] bit 31〜28: DRB7 Extention bit 27〜24: DRB6 Extention bit 23〜20: DRB5 Extention bit 19〜16: DRB4 Extention bit 15〜12: DRB3 Extention bit 11〜8: DRB2 Extention bit 7〜4: DRB1 Extention bit 3〜0: DRB0 Extention 解説 o 82434NXで拡張された8つのDRAMロウアドレスを制御する。 PCI 70h 名前 エラーコマンド(ERRCMD) Undocumented 機能 [READ/WRITE] bit 7: ターゲットアボート受信SERR# bit 6: PCIデータパリティエラー送信SERR# bit 5: PCIデータパリティエラー受信SERR# bit 4: PCIアドレスパリティエラーSERR# bit 3: データパリティエラー受信PERR# 1= Enabled 0= Disenabled bit 2: L2キャッシュパリティイネーブル 1= L2 cache implements parity 0= L2 cache does not implement parity bit 1: DRAM/L2キャッシュデータパリティエラーSERR#イネーブル bit 0: DRAM/L2キャッシュデータパリティMCHKイネーブル 1= Enabled 0= Disenabled 解説 o PCMCが各種システムエラーにどのように対処するか設定する。 PCI 71h 名前 エラーステータス(ERRSTS) Undocumented 機能 [READ/WRITE] bit 7: Reserved bit 6: PCI送信データパリティエラー 1= Data Parity Error 0= No Data Parity Error bit 5: PCI受信データパリティエラー■[82434NX] 1= Data Parity Error 0= No Data Parity Error bit 4: PCIアドレスパリティエラー■[82434NX] 1= Data Parity Error 0= No Data Parity Error bit 3: 主メモリデータパリティエラー 1= DRAM Data Parity Error 0= No DRAM Data Parity Error bit 2: L2キャッシュデータパリティエラー 1= L2 Cache Data Paritye Error 0= No L2 Cache Data Paritye Error bit 1: Reserved bit 0: シャットダウンサイクル検出 1= Shutdown Cycle 0= No Shutdown Cycle 解説 o PCI、2次キャッシュ、DRAMパリティのエラーを示す。 o 各ビットに対する1の書き込みで、エラーを示す値はクリアされる。 PCI 72h 名前 SMRAM空間制御(SMRS) Undocumented 機能 [READ/WRITE] bit 7,6: Reserved bit 5: SMRAM空間オープン(OSS) 1= SMRAM Access Open 0= SMRAM Access in SMM only bit 4: SMRAM空間クローズ(CSS) 1= Data Access to PCI 0= Data Access to SMRAM bit 3: SMRAM空間ロック(LSS) 1= SMRAM Locked 0= SMRAM Not Locked bit 2〜0: SMMベースセグメント(SBS) 000b= 主メモリの一番上 001b= Reserved 010b= A0000〜AFFFFh 011b= B0000〜BFFFFh 100b= Reserved 101b= Reserved 110b= Reserved 111b= Reserved 解説 o SMRAMを配置するメモリ空間等を設定する。 PCI 78h,79h 名前 メモリ空間ギャップ(MSG) Undocumented 機能 [READ/WRITE] bit 15: Memory Space Gap Enable 1= Enabled 0= Disenabled bit 14〜12: Memory Space Gap Size 000b= 1MB 001b= 2MB 011b= 4MB 111b= 8MB * その他の組み合せはリザーブされている。 * PC-9800シリーズでは0000b固定(1MB) bit 11〜8: Reserved bit 7〜4: Memory Space Gap Starting Address MSGSA= A[23:20] * PC-9800シリーズでは1111b固定(F00000h〜) bit 3〜0: Reserved 解説 o CPUアドレス空間の連続していないメモリ領域を設定する。 o PC-9800シリーズでは、16MBシステム空間を設定するために用いられる。 関連 I/O 043Bh bit 2 PCI 7C〜7Fh 名前 フレームバッファ領域(FBR) Undocumented 機能 [READ/WRITE] bit 31〜20: バッファオフセット * フレームバッファのオフセットアドレスのbit 31〜20を設定する。 bit 19〜14: Reserved bit 13: バイトマージング 1= Enabled 0= Disenabled bit 12: 128K VGA 領域属性イネーブル 1= Enabled 0= Disenabled bit 11,10: Reserved bit 9: ノーロックリクエスト 1= No LOCK Request enabled 0= No LOCK Request disenabled bit 8: CPUからPCIへのプリフェッチ 1= Prefetch enabled 0= Prefetch disenabled bit 7: 透過バッファ書き込み 1= Flush not required 0= Flush required bit 6〜4: Reserved bit 3〜0: バッファ領域 0000b= 1MB 0001b= 2MB 0011b= 4MB 0111b= 8MB 1111b= 16MB 解説 o フレームバッファのためのメモリ領域を定義する。 -------------------------------------------------------------------------------