JPH11282751A - System and method for data processing - Google Patents

System and method for data processing

Info

Publication number
JPH11282751A
JPH11282751A JP10082046A JP8204698A JPH11282751A JP H11282751 A JPH11282751 A JP H11282751A JP 10082046 A JP10082046 A JP 10082046A JP 8204698 A JP8204698 A JP 8204698A JP H11282751 A JPH11282751 A JP H11282751A
Authority
JP
Japan
Prior art keywords
address
bus
main storage
data
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP10082046A
Other languages
Japanese (ja)
Inventor
Koichi Ito
幸一 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Engineering Ltd
Original Assignee
NEC Engineering Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP10082046A priority Critical patent/JPH11282751A/en
Publication of JPH11282751A publication Critical patent/JPH11282751A/en
Withdrawn legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a data processing system which enable an out-of-order transfer without influencing existing software and is of high performance and efficient in a data processor having a virtual storage system. SOLUTION: In response to a request from I/O adapters 10-1 to 10-3, an I/O bus bridge 7 allows an ADT 8 to translate an address outputted to an I/O bus 9 into a virtual storage address then allows a host bus bridge 4 to translate the virtual storage address after translation into a physical address of a main storage device 2 by using a TLB 5. Thus, it is possible to flexibly deal with data transfer in a different address space at high speed.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明はデータ処理システム
及びデータ処理方法に関し、特に複数のバスシステムを
内包する仮想記憶システムをサポートした情報処理にお
いてアドレス空間の定義が異なる複数のバスシステム間
におけるデータ転送方式に関するものである。
[0001] 1. Field of the Invention [0002] The present invention relates to a data processing system and a data processing method, and more particularly to data transfer between a plurality of bus systems having different address space definitions in information processing supporting a virtual storage system including a plurality of bus systems. It is about the method.

【0002】[0002]

【従来の技術】一般に、情報処理システムにおいては、
主記憶装置はホストバスに接続され、一方、入出力装置
はI/Oバス配下にI/Oアダプタを介して接続されて
いる。従って、入出力装置と主記憶装置間でデータ転送
を行う場合、ホストバスとI/Oバスを跨ぐデータ転送
を行う必要が生じる。更に、ホストバスでは主記憶装置
の物理アドレスがアドレス情報として用いられ、I/O
バスはI/Oバス固有のアーキテクチャを持ち、ホスト
バス上のアドレス情報とは異なる固有のアドレス空間を
定義する。
2. Description of the Related Art Generally, in an information processing system,
The main storage device is connected to the host bus, while the input / output device is connected to the I / O bus via an I / O adapter. Therefore, when performing data transfer between the input / output device and the main storage device, it is necessary to perform data transfer across the host bus and the I / O bus. Further, in the host bus, the physical address of the main storage device is used as address information, and the I / O
The bus has an architecture unique to the I / O bus, and defines a unique address space different from address information on the host bus.

【0003】更に、今日の一般的なコンピュータシステ
ムは仮想記憶システムを実現しており、これら3種(ホ
ストバスのアドレス空間=主記憶の物理アドレス空間、
I/Oバスのアドレス空間、仮想記憶アドレス空間)の
対応付けを解決する必要がある。一般にI/Oの動作
は、チャネルプログラムと呼ばれるソフトウェアが生成
する制御構造体により記述される。例えば、ディスク装
置の場合であれば、ヘッドの移動やデータのブロック番
号の指示、転送ブロック数の指示、リードあるいはライ
トの指示、動作中途でソフトウェアへ中間的な報告を行
う必要があるか否か、といった指示がチャネルプログラ
ムに含まれる。
Furthermore, today's general computer systems have realized virtual memory systems, and these three types (host bus address space = main memory physical address space,
It is necessary to solve the correspondence between the I / O bus address space and the virtual memory address space. Generally, I / O operations are described by a control structure generated by software called a channel program. For example, in the case of a disk device, it is necessary to indicate movement of a head, an instruction of a block number of data, an instruction of the number of transfer blocks, an instruction of read or write, and an intermediate report to software during operation. Are included in the channel program.

【0004】また、チャネルプログラムには、以下の様
な情報も含まれる。すなわち、I/Oデバイスからデー
タを読込む場合には、読込んだデータが書込まれるべき
主記憶装置のアドレスや、データをI/Oデバイスへ書
込む場合には、データが置かれている主記憶装置のアド
レス等が含まれており、これ等はソフトウェアにより準
備される。
[0004] The channel program also includes the following information. That is, when data is read from the I / O device, the address of the main storage device where the read data is to be written, and when the data is written to the I / O device, the data is stored. The address of the main storage device is included, and these are prepared by software.

【0005】更に、中央処理装置の負荷を軽減する目的
で、主記憶装置上のデータのアドレスは仮想記憶アドレ
スで記述される。I/Oプロセッサは中央処理装置から
の指示により主記憶装置に置かれたチャネルプログラム
のアドレスを知り、チャネルプログラムを読出し、チャ
ネルプログラムに含まれる仮想記憶アドレスを主記憶装
置の物理アドレスに変換してハードウェアが主記憶装置
をアクセスできる様にする必要がある。
Further, in order to reduce the load on the central processing unit, addresses of data on the main storage device are described by virtual storage addresses. The I / O processor knows the address of the channel program placed in the main storage device according to an instruction from the central processing unit, reads the channel program, converts the virtual storage address included in the channel program into a physical address of the main storage device, Hardware must be able to access main storage.

【0006】また、仮想記憶システムを有するコンピュ
ータシステムでは、仮想記憶アドレス空間はページと呼
ばれる数キロバイト単位(キロバイト=210 バイト)に
分割され管理される。ページは仮想記憶アドレス空間上
では連続なアドレスに配置される。しかし、仮想記憶ア
ドレス空間上では隣接するページであっても、主記憶装
置上では各々のページが分散されて配置されている可能
性がある(ページ内部のアドレスは、物理アドレスも仮
想記憶アドレスも連続なアドレスを有する)。従って、
ページ境界を越える度に、仮想記憶アドレスから物理ア
ドレスへの変換を行う必要がある。
In a computer system having a virtual storage system, a virtual storage address space is divided and managed in units of several kilobytes (kilobytes = 210 bytes) called pages. Pages are arranged at consecutive addresses in the virtual memory address space. However, even if the pages are adjacent pages in the virtual memory address space, there is a possibility that each page is distributed and arranged in the main storage device (addresses inside a page are both physical addresses and virtual memory addresses). With consecutive addresses). Therefore,
Each time a page boundary is crossed, a translation from a virtual storage address to a physical address must be performed.

【0007】以上説明した様な条件を満たすため、デー
タ転送(Direct Memory Access; DMAとも呼ぶ)を行う
場合のデータのアドレスの取り扱いに着目すると、従来
技術としては以下の様な方式がある。
In order to satisfy the above-described conditions, focusing on handling of data addresses when performing data transfer (Direct Memory Access; also referred to as DMA), there are the following conventional techniques.

【0008】先ず、第一の従来例では、ホストバスブリ
ッジ内部にデータの物理アドレスを記憶し、データ転送
の度にアドレスを更新(加算あるいは減算)する。I/
Oバスブリッジから上位の(主記憶装置に近い)装置で
はI/Oバスのアドレス空間は無視され、アドレスレジ
スタとI/Oアダプタ関連はI/Oアダプタ固有のIDで
識別されて管理される。ホストバスブリッジ内部にアド
レスレジスタをI/Oアダプタ毎に具備し、I/Oプロ
セッサのマイクロプログラムがそのアドレスレジスタに
データ転送の開始アドレス(主記憶装置物理アドレス)
を書込む。仮想記憶アドレスか物理アドレスへの変換
は、I/Oプロセッサマイクロプログラムが主記憶装置
に展開された変換表を参照しつつ行う。
First, in the first conventional example, a physical address of data is stored in the host bus bridge, and the address is updated (added or subtracted) every time data is transferred. I /
In a device higher than the O bus bridge (closer to the main storage device), the address space of the I / O bus is ignored, and the address registers and I / O adapters are identified and managed by IDs unique to the I / O adapter. An address register is provided for each I / O adapter inside the host bus bridge, and a microprogram of the I / O processor stores a data transfer start address (main storage device physical address) in the address register.
Write. The conversion into the virtual storage address or the physical address is performed while the I / O processor microprogram refers to the conversion table expanded in the main storage device.

【0009】図12を参照しながら説明する。図12に
おいて、CPU1と主記憶装置(MMU)2とはホスト
バス3に接続されており、また複数のI/Oアダプタ
(I/OA)10-1〜10-3はI/Oバス9に接続されてい
る。物理アドレスレジスタPADR4-1a〜4-1cは、各I/O
アダプタがデータを転送する主記憶装置の物理アドレス
を保持する。例えば、PADR4-1aはI/Oアダプタ10-1が
行おうとしているデータ転送の物理アドレスを記憶す
る。このPADRの設定はI/Oプロセッサ6のマイクロプ
ログラムが行う。
A description will be given with reference to FIG. In FIG. 12, a CPU 1 and a main storage device (MMU) 2 are connected to a host bus 3, and a plurality of I / O adapters (I / OA) 10-1 to 10-3 are connected to an I / O bus 9. It is connected. The physical address registers PADR4-1a to PADR4-1c are
The adapter holds the physical address of the main storage device to which data is transferred. For example, PADR4-1a stores the physical address of the data transfer that the I / O adapter 10-1 is trying to perform. The setting of the PADR is performed by a microprogram of the I / O processor 6.

【0010】I/Oプロセッサ6はソフトウェアにより
主記憶装置中に展開された各種変換テーブルを参照して
仮想記憶アドレスから物理アドレスへの変換を行い、得
られた物理アドレス(主記憶装置のデータ領域の先頭を
指す)をPADR4-1aに書込む。I/Oアダプタ10-1からI
/Oバス9を介してデータ転送リクエストがあると、バ
スコントローラ4−2はI/Oアダプタ10-1に対応する
ID番号を生成し、PADR4-1aを読出し、ホストバス3へ送
る(線4-4 )。データ転送リクエストが完了する度に、
PADR4-1aの値は加算器4-3 により更新され書戻される。
例えば、1度のリクエストで32バイトが転送されるなら
ば、PADR4-1aに内容は+32 されて書戻される。
The I / O processor 6 performs conversion from a virtual storage address to a physical address by referring to various conversion tables developed in the main storage device by software, and obtains the obtained physical address (data area of the main storage device). To the head of PADR4-1a). I / O adapter 10-1 to I
When there is a data transfer request via the / O bus 9, the bus controller 4-2 corresponds to the I / O adapter 10-1.
An ID number is generated, PADR4-1a is read, and sent to the host bus 3 (line 4-4). Each time a data transfer request is completed,
The value of PADR4-1a is updated and written back by the adder 4-3.
For example, if 32 bytes are transferred in one request, the content is +32 written back to PADR4-1a.

【0011】加算された結果がページ境界を越えたこと
を検出すると(ページサイズが4キロバイトの場合を例
に取ると、加算前のPADR4-1aの値が0000FFE0(h) で、加
算後の値が00010000(h) となった様な場合)、I/Oプ
ロセッサ6のマイクロプログラムに割込んで、I/Oプ
ロセッサ6のマイクロプログラムが次のページのアドレ
スを求め、PADR4-1aの値を新たなページの先頭に対応す
る物理アドレスに書換える。
When it is detected that the added result exceeds the page boundary (for example, when the page size is 4 kilobytes, the value of PADR4-1a before addition is 0000FFE0 (h), and the value after addition is Becomes 00010000 (h)), interrupts the microprogram of the I / O processor 6, the microprogram of the I / O processor 6 obtains the address of the next page, and updates the value of PADR4-1a. To the physical address corresponding to the top of the page.

【0012】第二の従来例では、主記憶装置と入出力装
置間でデータ転送を行う際に、入出力装置はI/Oバス
上で仮想記憶アドレスを用いてリクエストを発行し、
(ホストバスブリッジやI/Oバスブリッジが)データ
転送を行う毎に仮想記憶から物理アドレスへの変換を行
い、変換後の物理アドレスで主記憶装置をアクセスす
る。この変換は連想記憶バッファ(Translation Look-
aside Buffer:TLB )を用いて行われる。TLB は仮想記
憶アドレスとそれに対応する主記憶物理アドレスの対を
複数個備え、アクセスの度に、TLB にある仮想記憶アド
レスとアクセスされた仮想記憶アドレスを比較する。
In the second conventional example, when data is transferred between a main storage device and an input / output device, the input / output device issues a request using a virtual storage address on an I / O bus.
Each time data transfer is performed (by the host bus bridge or the I / O bus bridge), the virtual memory is converted into a physical address, and the main storage is accessed with the converted physical address. This conversion is performed using the translation look-up buffer (Translation Look-
aside Buffer: TLB). The TLB has a plurality of pairs of a virtual memory address and a corresponding main memory physical address, and each time the access is made, the virtual memory address in the TLB is compared with the accessed virtual memory address.

【0013】TLB に一致するアドレスがある場合には、
その仮想記憶アドレスと対をなす物理アドレスを用いて
主記憶をアクセスし、一致しなかった場合には、ページ
フォルト割込みを生成する。ページフォルト割込みによ
り、TLB の変換対の入替えが行われ、アクセスがあった
ページの仮想記憶アドレスと物理アドレスが新たにTLB
に登録される。
If there is an address that matches the TLB,
The main memory is accessed using the physical address paired with the virtual memory address, and if they do not match, a page fault interrupt is generated. Due to the page fault interrupt, the conversion pair of the TLB is exchanged, and the virtual memory address and physical address of the accessed page are newly added to the TLB.
Registered in.

【0014】図13にその構成の一例をあげる。図13
においては図12と同等部分は同一符号にて示してい
る。図13の15がアドレス変換対に相当するものであ
る。本先行技術の例としては、特開平-173930 号公報及
び特開平6-19836 号公報がある。
FIG. 13 shows an example of the configuration. FIG.
, The same parts as those in FIG. 12 are indicated by the same reference numerals. Reference numeral 15 in FIG. 13 corresponds to the address translation pair. Examples of this prior art include JP-A-173930 and JP-A-6-19836.

【0015】[0015]

【発明が解決しようとする課題】第一の従来技術の問題
点は、Out-of-Orderのデータ転送に対応できないという
ことにある。従来のデータ転送では、主記憶装置からの
データの読出しまたは書込みは、必ずデータ領域の先頭
のアドレスから始まる。そして、forward 方向の転送の
場合にはアドレスの昇順に(Backward方向の転送の場合
にはアドレスの降順に)、常に連続したアドレスに対し
てデータの転送が行われる。例えば、200000(h) 番地か
ら64キロバイトのforward 方向の主記憶装置へのデータ
の書込みが行われる場合、I/Oデバイスから転送され
るデータは200000番地から始まり、200001、200002、…
と続き、最後は20FFFF(h) 番地で終わる。この様な転送
をIn-order転送と呼ぶ。
A first problem of the prior art is that it cannot cope with out-of-order data transfer. In the conventional data transfer, reading or writing of data from the main storage always starts from the first address of the data area. Then, in the case of transfer in the forward direction, data is always transferred to consecutive addresses in ascending order of addresses (in the case of transfer in the backward direction, descending order of addresses). For example, when data is written from address 200,000 (h) to the main memory in the forward direction of 64 kilobytes, data transferred from the I / O device starts from address 200,000, 200001, 200002,.
And ends with address 20FFFF (h). Such a transfer is called an in-order transfer.

【0016】一方、Out-of-Order転送では、転送データ
の順序は保証されない。転送データの主記憶の先頭アド
レスを200000番地、転送バイトカウントを64キロバイト
とすると、アドレス200000番地〜20FFFF番地の間のデー
タ転送の順序性は保証されない転送の方式である。例を
示すと、I/Oデバイスはデバイスキャッシュの中に20
8000番地からの32キロバイト存在することを検知したよ
うな場合、200000番地からデータ転送を始めるのではな
く、208000番地から転送を開始して、20FFFF番地までの
転送を最初に行う。更に、上記転送を行っている間にデ
バイスから残りの32キロバイトを読出しておき、次に20
0000番地から207FFF番地の転送を行う。
On the other hand, in the Out-of-Order transfer, the order of the transfer data is not guaranteed. If the start address of the main memory of the transfer data is 200,000 and the transfer byte count is 64 kilobytes, the order of data transfer between addresses 200,000 and 20FFFF is a transfer method that is not guaranteed. For example, an I / O device has 20
When it is detected that there is 32 kilobytes from address 8000, data transfer is not started from address 200,000, but is started from address 208000, and transfer to address 20FFFF is performed first. In addition, during the above transfer, read the remaining 32 Kbytes from the device, then
Transfer from address 0000 to address 207FFF is performed.

【0017】上記第一の従来技術の方式はIn-orderの転
送を前提としている。すなわち、仮想記憶アドレス上で
データが常に連続して転送されることを前提としてい
る。従って、Out-of-Order転送の様に仮想記憶アドレス
上でデータが飛び飛びになったり、アドレスの規則性が
保たれない可能性があるOut-of-Order転送には対応でき
ないという課題がある。Out-of-Order転送は、ディスク
アレイやキャッシュを有するディスクの性能を向上させ
るために採用されている転送方式である。
The first prior art system is based on the premise of in-order transfer. That is, it is assumed that data is always continuously transferred on the virtual storage address. Therefore, there is a problem that it is not possible to cope with an out-of-order transfer in which data may be scattered on a virtual memory address or an address regularity may not be maintained as in an out-of-order transfer. Out-of-order transfer is a transfer method adopted to improve the performance of a disk having a disk array or a cache.

【0018】次に、第二の従来技術の問題点について述
べる。大規模なコンピュータシステムでは、入出力装置
または入出力アダプタはホストバスに直接ではなく、バ
スブリッジを介してI/Oバスに接続される。これは、
ホストバスの電気的な負荷の制約からもこのような構成
とせざるを得ない。I/Oバスはアドレス線とデータ線
を共用しており、そのビット幅は32ビット程度であるた
め、I/Oバス上で使用できるアドレス空間は4GB程
度に制約される。
Next, the problem of the second prior art will be described. In large computer systems, I / O devices or I / O adapters are connected to the I / O bus through a bus bridge, rather than directly to the host bus. this is,
Such a configuration is unavoidable due to restrictions on the electrical load of the host bus. The I / O bus shares an address line and a data line, and its bit width is about 32 bits. Therefore, the address space that can be used on the I / O bus is limited to about 4 GB.

【0019】一方、システムコンピュータシステムが提
供する仮想記憶アドレス空間の大きさは、数ギガバイト
(ギガバイト=230バイト)〜数テラ(テラバイト=240)
である。それに対して、入出力装置が扱えるアドレス空
間の大きさは高々4GB程度である。従って、仮想記憶
アドレス空間の一部をI/Oバスのアドレス空間として
アサインすると、入出力のバッファ領域として使える仮
想記憶アドレス空間の領域が(下位のアドレス空間に)
制約されてしまい、仮想記憶アドレス空間の大きさを有
効に利用できないという問題がある。更に、ソフトウェ
アの開発においてもこの制約を課さねばならないという
問題もある。
On the other hand, the size of the virtual memory address space provided by the computer system ranges from several gigabytes (gigabytes = 230 bytes) to several tera (terabytes = 240).
It is. On the other hand, the size of the address space that the input / output device can handle is at most about 4 GB. Therefore, when a part of the virtual memory address space is assigned as an I / O bus address space, the area of the virtual memory address space that can be used as an input / output buffer area becomes (lower address space).
There is a problem that the size of the virtual memory address space cannot be used effectively because of the restriction. Furthermore, there is a problem that this restriction must be imposed even in software development.

【0020】本発明の目的は、仮想記憶システムを有す
るデータ処理装置において既存のソフトウェアに影響を
与えることなくOut-of-order転送を可能とし、高性能か
つ効率の良いデータ処理システム及びデータ処理方法を
提供することである。
An object of the present invention is to enable a data processing apparatus having a virtual storage system to perform out-of-order transfer without affecting existing software, and to provide a high-performance and efficient data processing system and data processing method. It is to provide.

【0021】[0021]

【課題を解決するための手段】本発明によれば、仮想記
憶システムが採用され、中央処理装置と、主記憶装置
と、これ等中央処理装置と主記憶装置とを接続するホス
トバスと、前記仮想記憶システム及び前記主記憶装置の
各アドレス空間とは異なる固有のアドレス空間を有する
I/Oバスと、前記I/Oバスに接続され配下に入出力
装置を有するI/Oアダプタとを含むデータ処理システ
ムであって、前記I/Oバスに接続され、前記I/Oア
ダプタからのリクエストに応答して前記I/Oバス上に
出力されたアドレスを仮想記憶アドレスに変換する第一
のアドレス変換手段と、前記I/Oアダプタからのリク
エストに応答して前記第一のアドレス変換手段により変
換された仮想記憶アドレスを用いて前記主記憶装置への
アクセス要求をなす手段とを有するI/Oバス制御手段
と、前記ホストバスに接続され、前記I/Oバス制御装
置からのアクセス要求に応答して前記仮想記憶アドレス
を前記主記憶装置の物理アドレスに変換する第二のアド
レス変換手段と、この物理アドレスを用いて前記主記憶
装置をアクセスする手段とを有するホストバス制御手段
と、を含むことを特徴とするデータ処理システムが得ら
れる。
According to the present invention, a virtual storage system is adopted, a central processing unit, a main storage unit, a host bus connecting these central processing units and the main storage unit, and Data including an I / O bus having a unique address space different from each address space of the virtual storage system and the main storage device, and an I / O adapter connected to the I / O bus and having an input / output device under the I / O bus A processing system, comprising: a first address converter connected to the I / O bus for converting an address output on the I / O bus in response to a request from the I / O adapter to a virtual memory address Means for making an access request to the main storage device using the virtual storage address converted by the first address conversion means in response to a request from the I / O adapter. An I / O bus control means having a stage, and connected to the host bus, for converting the virtual storage address into a physical address of the main storage device in response to an access request from the I / O bus control device. There is provided a data processing system including: a host bus control unit having a second address conversion unit and a unit for accessing the main storage device using the physical address.

【0022】そして、前記ホストバス制御手段は、前記
アクセス要求が前記主記憶装置に対するリード要求の場
合には、前記主記憶装置からデータを読出して前記I/
Oバス制御手段へこの読出したデータを送出する手段を
有し、また前記ホストバス制御手段は、前記アクセス要
求が前記主記憶装置に対するライト要求の場合には、前
記主記憶装置ヘ前記I/Oバス制御手段からのデータを
書込む手段を有することを特徴とする。
When the access request is a read request to the main storage device, the host bus control means reads data from the main storage device to read the I / O data.
Means for transmitting the read data to the O bus control means, and the host bus control means transmits the I / O to the main storage device when the access request is a write request to the main storage device. It is characterized by having means for writing data from the bus control means.

【0023】更に、前記I/Oバス制御手段は、前記ア
クセス要求が前記主記憶装置に対するリード要求の場合
には、前記ホストバス制御手段からの送出データを前記
I/Oバスへ送出する手段を有し、また前記I/Oバス
制御手段は、前記アクセス要求が前記主記憶装置に対す
るライト要求の場合には、前記I/Oバスに送出された
データを取込んで前記ホストバス制御手段へ送出する手
段を有することを特徴とする。
Further, when the access request is a read request to the main storage device, the I / O bus control means includes means for transmitting data transmitted from the host bus control means to the I / O bus. When the access request is a write request to the main storage device, the I / O bus control means fetches the data sent to the I / O bus and sends the data to the host bus control means. It is characterized by having means for performing.

【0024】本発明によれば、仮想記憶システムが採用
され、中央処理装置と、主記憶装置と、これ等中央処理
装置と主記憶装置とを接続するホストバスと、前記仮想
記憶システム及び前記主記憶装置の各アドレス空間とは
異なる固有のアドレス空間を有するI/Oバスと、この
I/Oバスに接続され配下に入出力装置を有するI/O
アダプタとを含むデータ処理システムにおけるデータ処
理方法であって、前記I/Oアダプタからのリクエスト
に応答して前記I/Oバス上に出力されたアドレスを仮
想記憶アドレスに変換するステップと、前記I/Oアダ
プタからのリクエストに応答してこの変換された仮想記
憶アドレスを用いて前記主記憶装置へのアクセス要求を
なすステップと、前記I/Oバス制御装置からのアクセ
ス要求に応答して前記仮想記憶アドレスを前記主記憶装
置の物理アドレスに変換するステップと、この物理アド
レスを用いて前記主記憶装置をアクセスするステップ
と、を有することを特徴とするデータ処理方法が得られ
る。
According to the present invention, a virtual storage system is adopted, a central processing unit, a main storage unit, a host bus connecting these central processing units and the main storage unit, the virtual storage system and the main storage unit. An I / O bus having a unique address space different from each address space of the storage device, and an I / O connected to the I / O bus and having an input / output device under the I / O bus
A data processing method in a data processing system including an I / O adapter, the method comprising: converting an address output on the I / O bus into a virtual memory address in response to a request from the I / O adapter; Making an access request to the main storage device using the converted virtual storage address in response to a request from the I / O adapter; and responding to the access request from the I / O bus control device. A data processing method is provided, comprising: converting a storage address into a physical address of the main storage device; and accessing the main storage device using the physical address.

【0025】本発明の作用を述べる。I/Oアダプタか
らのリクエストに応答して、I/Oバス制御手段である
I/Oバスブリッジにおいて、I/Oバスに出力された
アドレスを仮想記憶アドレスに変換し、この変換後の仮
想記憶アドレスを、ホストバス制御手段であるホストバ
スブリッジにおいて主記憶装置の物理アドレスに変換す
ることで、異なるアドレス空間のデータ転送を高速でか
つ柔軟に対処可能とする。
The operation of the present invention will be described. In response to the request from the I / O adapter, the I / O bus bridge, which is the I / O bus control means, converts the address output to the I / O bus into a virtual storage address, and converts the virtual storage address after the conversion. By converting the address into the physical address of the main storage device in the host bus bridge as the host bus control means, data transfer in different address spaces can be dealt with at high speed and flexibly.

【0026】[0026]

【発明の実施の形態】以下に図面を参照しつつ本発明の
実施例につき説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0027】図1は本発明の一実施例の概略構成を示す
ブロック図であり、図12,13と同等部分は同一符号
にて示している。図1において、CPU1と主記憶装置
2とはホストバス3に接続されており、複数のI/Oア
ダプタ10-1〜10-3の各々はその配下に入出力デバイスを
有してI/Oバス9に接続されている。ホストバス3と
I/Oバス9との間には、ホストバスブリッジ4とI/
Oバスブリッジ7とが設けられている。そして、このデ
ータ処理装置は仮想記憶システムが採用されており、そ
の仮想記憶アドレス空間と、主記憶装置の物理アドレス
空間と、I/Oバスのアドレス空間との関係は図2に示
す様になっているものとする。
FIG. 1 is a block diagram showing a schematic configuration of an embodiment of the present invention, and the same parts as those in FIGS. In FIG. 1, a CPU 1 and a main storage device 2 are connected to a host bus 3, and each of a plurality of I / O adapters 10-1 to 10-3 has an I / O device under its control. It is connected to a bus 9. A host bus bridge 4 and an I / O bus 9 are connected between the host bus 3 and the I / O bus 9.
An O bus bridge 7 is provided. This data processing device employs a virtual storage system, and the relationship among the virtual storage address space, the physical address space of the main storage device, and the address space of the I / O bus is as shown in FIG. It is assumed that

【0028】I/Oアダプタ10-1〜10-3からのデータ転
送リクエストはI/Oバス9を介してI/Oバスブリッ
ジ7に伝わる。I/Oバスブリッジ7はI/Oバス9の
リクエストのアービトレーション(調停)を行い、最も
優先度の高いI/Oアダプタにバスの使用権を与える。
バス使用権を与えられたI/Oアダプタは、I/Oバス
9上にコマンドとアドレスと、更にはデータ転送がライ
トの場合であればライトデータを出力する。I/Oバス
ブリッジ7はI/Oバス上のアドレスをアドレス変換手
段であるADT8に入力し、ADT8の出力として仮想
記憶アドレスを得る。
Data transfer requests from the I / O adapters 10-1 to 10-3 are transmitted to the I / O bus bridge 7 via the I / O bus 9. The I / O bus bridge 7 arbitrates (arbitrates) requests for the I / O bus 9, and gives the right to use the bus to the I / O adapter with the highest priority.
The I / O adapter given the right to use the bus outputs a command and an address on the I / O bus 9 and, if the data transfer is a write, outputs write data. The I / O bus bridge 7 inputs an address on the I / O bus to the ADT 8 which is an address conversion means, and obtains a virtual memory address as an output of the ADT 8.

【0029】I/Oバスブリッジ7は得られた仮想記憶
アドレスを用いてホストバスブリッジ4に主記憶装置2
のアクセスを要求する。ホストバスブリッジ4はTLB
5を用いてI/Oバスブリッジ7から送られた仮想記憶
アドレスを物理アドレスに変換する。更に、ホストバス
ブリッジ4は変換した結果の物理アドレスを用いて主記
憶装置2をアクセスする。I/Oバスブリッジ7からの
要求が主記憶装置2へのライトを指示しているならば、
I/Oバスブリッジ7から受取ったデータを主記憶装置
2に書込み、I/Oバスブリッジ7からの要求が主記憶
装置2からのリードを指示しているならば主記憶装置2
から読出したデータをI/Oバスブリッジ7に送り返
す。
The I / O bus bridge 7 sends the main storage device 2 to the host bus bridge 4 using the obtained virtual storage address.
Request access. Host bus bridge 4 is TLB
5 is used to convert the virtual storage address sent from the I / O bus bridge 7 into a physical address. Further, the host bus bridge 4 accesses the main storage device 2 using the converted physical address. If the request from the I / O bus bridge 7 indicates a write to the main storage device 2,
The data received from the I / O bus bridge 7 is written into the main storage device 2, and if a request from the I / O bus bridge 7 indicates a read from the main storage device 2,
Is returned to the I / O bus bridge 7.

【0030】I/Oアダプタからのリクエストが主記憶
装置2のリードの場合、I/Oバスブリッジ7はホスト
バスブリッジ4から送り返された主記憶装置2からのリ
ードデータをI/Oバス9上へ出力する。要求元のI/
Oアダプタはリードデータを自装置の内部に取込む。
When the request from the I / O adapter is a read from the main storage device 2, the I / O bus bridge 7 transfers the read data from the main storage device 2 returned from the host bus bridge 4 to the I / O bus 9. Output to Requester I /
The O adapter takes in the read data into its own device.

【0031】図1における各部分を説明すると、1はプ
ログラムを実行するCPU(中央処理装置)、2は主記
憶装置であってプログラム、データ及びチャネルプログ
ラム等の制御情報を格納する。4はホストバスブリッジ
であり内部にTLB5とI/Oプロセッサ6とを含む。
CPU1と主記憶装置2とホストバスブリッジ4とはホ
ストバス3により接続されてデータの授受を行う。TL
B5は仮想記憶アドレスを主記憶装置の物理アドレスに
変換するものである。I/Oプロセッサ6はマイクロプ
ログラムで制御されるI/O処理を司るマイクロプロセ
ッサである。I/Oプロセッサ6はCPU1からのI/
O命令による指示に基づき、主記憶装置に格納されたチ
ャネルプログラムを読出して実行する。チャネルプログ
ラムはI/O命令発行以前に、オペレーティングシステ
ム(OS)により準備される。
Referring to each part in FIG. 1, reference numeral 1 denotes a CPU (central processing unit) for executing a program, and 2 denotes a main storage device, which stores control information such as programs, data, and channel programs. Reference numeral 4 denotes a host bus bridge which includes a TLB 5 and an I / O processor 6 therein.
The CPU 1, the main storage device 2, and the host bus bridge 4 are connected by the host bus 3 to exchange data. TL
B5 converts the virtual storage address into a physical address of the main storage device. The I / O processor 6 is a microprocessor that controls I / O processing controlled by a microprogram. The I / O processor 6 receives an I / O signal from the CPU 1
The channel program stored in the main storage device is read and executed based on the instruction by the O instruction. The channel program is prepared by the operating system (OS) before issuing the I / O instruction.

【0032】7はI/Oバスブリッジであって、内部に
アドレス変換テーブルADT8を含む。ADT8はI/
Oバス9上に出力されたアドレスを仮想記憶アドレスに
変換するための情報を格納する。9はI/Oバスであ
り、I/Oバスブリッジ7とI/Oアダプタ10-1〜10-3
とを接続する。I/Oバス上のアドレス空間は、ホスト
バス上のアドレス空間とも、仮想アドレス空間とも異な
る独自のアドレス空間を持つ。I/Oアダプタは各々そ
の配下に入出力デバイスを有し、デバイス固有機能の制
御を行う。ホストバスブリッジ4とI/Oバスブリッジ
7とは固有のインターフェースで接続される。
Reference numeral 7 denotes an I / O bus bridge, which internally includes an address conversion table ADT8. ADT8 is I /
Information for converting the address output on the O bus 9 into a virtual storage address is stored. Reference numeral 9 denotes an I / O bus, which includes an I / O bus bridge 7 and I / O adapters 10-1 to 10-3.
And connect. The address space on the I / O bus has its own address space different from the address space on the host bus and the virtual address space. Each I / O adapter has an input / output device under its control, and controls device-specific functions. The host bus bridge 4 and the I / O bus bridge 7 are connected by a unique interface.

【0033】次に、仮想記憶システムについて説明す
る。仮想記憶システムとは、実際に存在する主記憶装置
よりも大きなメモリ空間をプログラムに見せるための仕
掛けである。例えば、主記憶装置が256 MB(メガバイ
ト)しかないコンピュータシステムにおいて、プログラ
ムには、1GB(ギガバイト)の大きさのメモリ空間を
仮想的に提供する。仮想記憶空間に配置されたデータの
実体はディスクアレイ装置などの高速な外部記憶装置に
おかれている。仮想記憶空間はページと呼ばれる一定の
大きさに分割され、各ページが外部記憶装置のどこに格
納されているかはOSにより管理される。記憶プログラ
ムの実行に必要になったページ(プログラム自体の存在
するページやデータが配置されたページ)はOSにより
外部記憶装置から主記憶装置にロードされる。
Next, the virtual storage system will be described. The virtual storage system is a mechanism for showing a program a memory space larger than a main storage device actually existing. For example, in a computer system having a main storage device of only 256 MB (megabyte), a program is virtually provided with a memory space of 1 GB (gigabyte). The substance of the data arranged in the virtual storage space is stored in a high-speed external storage device such as a disk array device. The virtual storage space is divided into fixed sizes called pages, and where each page is stored in the external storage device is managed by the OS. Pages required to execute the storage program (pages in which the program itself exists and pages in which data are arranged) are loaded from the external storage device to the main storage device by the OS.

【0034】プログラムの実行のために実際に割当てら
れる空間は主記憶装置の最大容量よりも更に少ない。例
えば、実際にプログラムの実行のために割当てられた主
記憶装置が4MBでページの大きさが4KB(キロバイ
ト)とすると、1024ページまでは主記憶装置に格納でき
ることになる。さらに、1025ページ目が必要になると、
すでに主記憶装置にロードされているページと新たに必
要になったページの入替えが起こる。主記憶装置にある
ページのどれかが外部記憶装置に書込まれ、新たなペー
ジが主記憶装置の空いた領域にロードされる。これらの
ページの入替え処理はプログラムでは認識されず、全て
OSにより行われる。
The space actually allocated for program execution is even less than the maximum capacity of main storage. For example, if the main storage device actually allocated for executing the program is 4 MB and the page size is 4 KB (kilobytes), up to 1024 pages can be stored in the main storage device. In addition, when page 1025 is needed,
A page that has already been loaded into the main storage device and a page that is newly needed are exchanged. One of the pages in the main storage is written to the external storage, and a new page is loaded into an empty area of the main storage. These page replacement processes are not recognized by the program, and are all performed by the OS.

【0035】仮想記憶アドレス上ではページは連続であ
ることが保証される。つまり、ページの最後のバイト+
1バイトのアドレスが次のページのアドレスとなる。し
かし、物理アドレス上では、連続するページが連続する
物理アドレスに配置されることは保証されない。プログ
ラムは仮想記憶空間へのメモリアクセスを仮想記憶アド
レスで行うが、コンピュータシステムのハードウェアは
主記憶装置を物理的なアドレスでアクセスしなければな
らない。そのため、仮装記憶アドレスから物理アドレス
への変換を行う必要がある。
Pages are guaranteed to be contiguous on a virtual memory address. That is, the last byte of the page +
One byte address is the address of the next page. However, on a physical address, it is not guaranteed that consecutive pages are arranged at consecutive physical addresses. While the program performs memory access to the virtual storage space at a virtual storage address, the hardware of the computer system must access the main storage device at a physical address. Therefore, it is necessary to convert a virtual storage address to a physical address.

【0036】この変換を高速に行うための機構がTLB
である。TLBは仮想記憶アドレスとそれに対応する主
記憶装置物理アドレスを一対で保持する。例えば、この
対が32対あると、32ページ分の変換表を持つことに
なる。ページの先頭からの相対的なバイト位置は仮想記
憶空間アドレスと主記憶装置物理アドレスとで同一であ
るので、ページ内部の相対アドレス(すなわち、アドレ
スの下位12ビット分)はTLBに記憶する必要はな
い。
The mechanism for performing this conversion at high speed is TLB
It is. The TLB holds a pair of a virtual storage address and a corresponding physical physical storage device address. For example, if there are 32 pairs, there will be a conversion table for 32 pages. Since the relative byte position from the top of the page is the same for the virtual storage space address and the main storage device physical address, it is not necessary to store the relative address inside the page (that is, the lower 12 bits of the address) in the TLB. Absent.

【0037】プログラムがメモリをアクセスすると、ハ
ードウェアはプログラムがメモリアクセスに用いた仮想
記憶アドレスとTLBに格納されている仮想記憶アドレ
スとを比較し、一致したものがあると(TLBヒットと
称される)、それに対応する物理アドレスを用いて主記
憶装置2をアクセスする。もしも、一致した仮想記憶ア
ドレスがない場合(TLBミスヒットと称される)、I
/Oプロセッサ6のマイクロプログラムに割込みが発生
し、マイクロプログラムがTLBの内容を入替える。こ
の入替えは以下の様にして行われる。
When the program accesses the memory, the hardware compares the virtual storage address used for the memory access by the program with the virtual storage address stored in the TLB. If there is a match, the hardware compares the virtual storage address (called a TLB hit). ), And accesses the main storage device 2 by using the corresponding physical address. If there is no matching virtual storage address (referred to as a TLB miss), I
An interrupt occurs in the microprogram of the / O processor 6, and the microprogram replaces the contents of the TLB. This replacement is performed as follows.

【0038】マイクロプログラムはTLBのどれかの対
(エントリと呼ぶ)を無効にする。プログラムがアクセ
スした仮想記憶アドレスから物理アドレスを計算して無
効化したエントリに書込む。ハードウェアは再びプログ
ラムがアクセスした仮想記憶アドレスを用いてTLBを
参照する。すでに、マイクロプログラムによる入替えが
行われているため、一致したものが見つかり主記憶装置
アクセスが行われる。マイクロプログラムが仮想記憶ア
ドレスから主記憶装置物理アドレスを計算するために
は、主記憶装置に記憶された諸々の対応表を参照する必
要があるが、本実施例では詳しくは述べない。
The microprogram invalidates any pair of TLBs (called entries). The physical address is calculated from the virtual memory address accessed by the program and written to the invalidated entry. The hardware refers to the TLB again using the virtual storage address accessed by the program. Since the replacement has already been performed by the microprogram, a match is found and the main storage device is accessed. In order for the microprogram to calculate the main storage device physical address from the virtual storage address, it is necessary to refer to various correspondence tables stored in the main storage device, but this embodiment will not be described in detail.

【0039】本実施例の説明は、下記の前提の元に行
う。すなわち、仮想記憶空間16GB(234 バイト)、
主記憶容量256 MB(228 バイト)、ページサイス4K
B(4096バイト)とする。
The description of this embodiment will be made under the following assumptions. That is, 16 GB (234 bytes) of virtual storage space,
Main memory capacity 256 MB (228 bytes), page size 4K
B (4096 bytes).

【0040】次に、I/Oバス9の動作について説明す
る。図1におけるI/Oバス9は32ビットのデータライ
ンとそれ以外の制御信号線の集合から成る。アドレスは
データラインと共用であり、4GBのアドレス空間を定
義する。各I/Oアダプタの内部のレジスタ類はそのア
ドレス空間にマッピングされる。すなわち、I/Oプロ
セッサ6がI/Oアダプタ10-1にコマンドを送る場合、
I/Oアダプタ10-1のコマンドレジスタに対応する(I
/Oバス上の)アドレスを指定してI/Oバスブリッジ
7へコマンドを送る。
Next, the operation of the I / O bus 9 will be described. The I / O bus 9 in FIG. 1 includes a set of 32-bit data lines and other control signal lines. The address is shared with the data line and defines a 4 GB address space. Registers inside each I / O adapter are mapped to its address space. That is, when the I / O processor 6 sends a command to the I / O adapter 10-1,
Corresponds to the command register of I / O adapter 10-1 (I
A command is sent to the I / O bus bridge 7 by specifying an address (on the / O bus).

【0041】主記憶装置2とデータ転送を行うためにI
/Oアダプタ10-nが用いるのは、物理アドレスでもなく
仮想記憶アドレスでもなく、I/Oバス9上で定義され
るアドレス空間を用いる。従って、データ転送を行うた
めにはハードウェアがI/Oバス9上のアドレスを物理
アドレスに変換する必要がある。この変換を行うための
変換手段がADT8である。この変換は、以下の2段階
を経て行われる。すなわち、第一段階では、I/Oバス
のアドレスから仮想記憶アドレスへの変換であり、第二
段階では、仮想記憶アドレスから主記憶装置物理アドレ
スへの変換である。これ等のアドレス変換動作の詳細に
ついては、以降の動作説明の中で述べる。
In order to perform data transfer with the main storage device 2, I
The I / O adapter 10-n uses an address space defined on the I / O bus 9, not a physical address or a virtual memory address. Therefore, in order to perform data transfer, it is necessary for hardware to convert an address on the I / O bus 9 into a physical address. The conversion means for performing this conversion is ADT8. This conversion is performed through the following two steps. That is, in the first stage, the conversion from the I / O bus address to the virtual storage address is performed, and in the second stage, the conversion from the virtual storage address to the main storage device physical address. The details of these address conversion operations will be described in the following operation description.

【0042】本実施例の説明においては、プロブラムか
ら可視の仮想記憶アドレス空間、主記憶装置の物理アド
レス空間及びI/Oバスのアドレス空間の対応は、先述
した様に、図2の様になっているものとする。以降の説
明の中でアドレスは特に断らない限り、16進数で表現
する。すなわち、チャネルプログラムは仮想記憶空間の
02010 0000番地(物理アドレスでは0001 0000 番地)に
おかれ、データ領域は00FF0 0000番地(同000A 0000 番
地)から始まる9KBである。また、データ領域は、I
/Oバスのメモリ空間0362 0000 番地からの3ページ分
にマッピングされている。
In the description of this embodiment, the correspondence between the virtual storage address space visible from the program, the physical address space of the main storage device, and the address space of the I / O bus is as shown in FIG. 2 as described above. It is assumed that In the following description, an address is represented by a hexadecimal number unless otherwise specified. In other words, the channel program
The data area is located at address 020100000 (physical address 00010000), and the data area is 9 KB starting from address 00FF0000 (address 000A0000). The data area is I
It is mapped to three pages from the memory space 03620000 of the / O bus.

【0043】次に、本発明の実施例の動作について説明
する。CPU1はOSとプログラムとを実行する。図3
のフローチャートに示す様に、プロプラムがI/Oの要
求を発行すると(ステップS1)、OSはチャネルプロ
グラムを生成して(ステップS2)、主記憶装置2へ格
納する(ステップS3)。次に、主記憶装置2の予め定
められたアドレス(チャネルプログラムポインタと称す
る)にチャネルプログラムを格納した先頭のバイトアド
レスを書込み(ステップS4)、I/Oプロセッサ6に
割込を発行する(ステップS5)。この割込はホストバ
ス上のトランザクションとしてCPU1が発行し、I/
Oプロセッサ6が受取る。
Next, the operation of the embodiment of the present invention will be described. The CPU 1 executes an OS and a program. FIG.
As shown in the flowchart, when the program issues an I / O request (step S1), the OS generates a channel program (step S2) and stores it in the main storage device 2 (step S3). Next, the first byte address storing the channel program is written to a predetermined address (referred to as a channel program pointer) of the main storage device 2 (step S4), and an interrupt is issued to the I / O processor 6 (step S4). S5). This interrupt is issued by the CPU 1 as a transaction on the host bus, and the I / O
O processor 6 receives it.

【0044】次に、チャネルプログラムのフォーマット
を図4を参照して説明する。チャネルプログラム102 は
主記憶装置2に格納され、16バイトのヘッダ部分と16バ
イトのチャネルコマンドエントリ部分とから成る。ヘッ
ダ部分はI/O動作の対象となるデバイスを特定する情
報であるI/Oバスブリッジ番号、I/Oアダプタ番
号、デバイス番号を含む。
Next, the format of the channel program will be described with reference to FIG. The channel program 102 is stored in the main storage device 2 and includes a 16-byte header portion and a 16-byte channel command entry portion. The header portion includes an I / O bus bridge number, an I / O adapter number, and a device number, which are information for specifying a device to be subjected to an I / O operation.

【0045】チャネルコマンドエントリは4つの部分か
ら構成される。デバイスあるいはI/Oアダプタへの動
作を指示するコマンド、後続のコマンドがあるか否かを
示すフラグ、転送すべきデータのバイトカウント、デー
タの仮想記憶アドレスである。データの仮想記憶アドレ
スは、データ転送がリード(デバイスから主記憶装置へ
の方向の転送)の場合、データを書込む領域の先頭のバ
イト位置を仮想記憶上のアドレスで示す。データ転送が
ライト(主記憶装置からデバイスへの方向の転送)の場
合、データを読出す領域の先頭のバイト位置を仮想記憶
上のアドレスで示す。
The channel command entry is composed of four parts. A command for instructing the device or the I / O adapter to operate, a flag indicating whether there is a subsequent command, a byte count of data to be transferred, and a virtual storage address of the data. When the data transfer is a read (transfer in the direction from the device to the main storage device), the virtual storage address of the data indicates the first byte position of the area in which the data is written by an address on the virtual storage. When the data transfer is a write (transfer from the main storage device to the device), the first byte position of the area from which data is read is indicated by an address on virtual storage.

【0046】チャネルコマンドエントリは必要に応じて
2つ以上をチェインすることが可能である。チャネルコ
マンドエントリがチェインされた状態をコマンドチェイ
ンと呼ぶ。例えば、デバイスのモード設定を行うチャネ
ルコマンドエントリに続けてデータのリードまたはライ
トを行うチャネルコマンドエントリをコマンドチェイン
するといった様な用法が可能である。
It is possible to chain two or more channel command entries as needed. The state in which channel command entries are chained is called a command chain. For example, such a usage as a command chain of a channel command entry for reading or writing data following a channel command entry for setting a mode of a device is possible.

【0047】図4の例では、チャネルプログラムポイン
タは物理アドレス0000 0100 番地に格納されている。I
/Oプロセッサ6は、その動作フローを示す図5を参照
すると、CPU1からの割込みを受信すると(ステップ
S11)、0000 0100 番地を読出す。I/Oプロセッサ
6 でのI/O動作の起動処理を高速化するため、チャネ
ルプログラムポインタはチャネルプログラムがおかれて
いる仮想記憶アドレスとそれに対応する記憶装置の物理
アドレスの両方を含む。I/Oプロセッサ6は0000 010
0 番地を読込み、チャネルプログラムが格納されている
位置を知る(ステップS12)。本実施例では、チャネ
ルプログラムの先頭のアドレスを、物理アドレスの0001
0000番地、仮想記憶アドレスの02010 0000番地、として
説明する。
In the example of FIG. 4, the channel program pointer is stored at the physical address 0000 0100. I
Referring to FIG. 5 showing the operation flow of the / O processor 6, upon receiving an interrupt from the CPU 1 (step S11), the / O processor 6 reads the address 0000 0100. I / O processor
6, the channel program pointer contains both the virtual storage address where the channel program is located and the physical address of the storage device corresponding to the channel program pointer. I / O processor 6 is 0000 010
Address 0 is read, and the position where the channel program is stored is known (step S12). In this embodiment, the head address of the channel program is set to the physical address 0001
The description will be made assuming that the address is 0000 and the virtual memory address is 02010 0000.

【0048】I/Oプロセッサ6はチャネルプログラム
ポインタ101 を参照してチャネルプログラムを物理アド
レスの0001 0000 番地から16バイトを読出す。00001 00
0C〜0001 000F 番地には、デバイスを特定する情報が格
納されており、I/Oプロセッサ6 はこの情報に基づ
き、I/O動作の対象を知ることができる(ステップS
13)。
The I / O processor 6 refers to the channel program pointer 101 to read the channel program from the physical address 0001 0000 at 16 bytes. 00001 00
Information for specifying a device is stored at addresses 0C to 0001000F, and the I / O processor 6 can know the target of the I / O operation based on this information (step S).
13).

【0049】次にI/Oプロセッサ6は0001 0010 番地
から連続する16バイトを読出す。次に、コマンドを解析
し(ステップS14)、データ転送を必要とするコマン
ドか否かを判断する。例えば、デバイスのイニシャライ
ズを指示するコマンドの場合データの転送は必要ないの
で行われない。データ転送を必要とするコマンドの場合
(ステップS15)、0001 0014 番地からの5バイトが
データの領域を示す仮想記憶アドレスになる。本例では
データの仮想記憶アドレスを00FF0 0000番地として、主
記憶装置の物理アドレスを000E E000 番地として説明す
る。I/Oプロセッサ6は仮想記憶アドレス00FF0 0000
から計算して対応する物理アドレス000EE000 を求め、
求めた結果をTLB5に登録する(ステップS16)。
Next, the I / O processor 6 reads consecutive 16 bytes from address 0001 0010. Next, the command is analyzed (step S14), and it is determined whether or not the command requires data transfer. For example, in the case of a command for instructing device initialization, data transfer is not required because it is not necessary. In the case of a command requiring data transfer (step S15), 5 bytes from address 0001 0014 become a virtual storage address indicating a data area. In this example, a description will be given on the assumption that the virtual storage address of data is 00FF0000 and the physical address of the main storage device is 000EE000. The I / O processor 6 has a virtual memory address of 00FF0 0000
To obtain the corresponding physical address 000EE000,
The obtained result is registered in the TLB 5 (step S16).

【0050】ここで、図6を参照してTLB5の構成を
説明する。図6は主にホストバスブリッジ4の機能ブロ
ックを示しており、5-2 は仮想記憶アドレスを格納する
仮想記憶アドレスアレイであり、5-1 は5-2 と対をなす
主記憶装置の物理アドレスを保持する物理アドレスアレ
イである。5-1 と5-2 は32個のエントリを含む。I/O
プロセッサ6 は仮想記憶アドレスの上位22ビットを5-2
に、物理アドレスの上位20ビットを5-1 に書込む。書込
むエントリは、例としてエントリ#3とする。すなわ
ち、5-2 の#3には00FF00(2進数で表現すると、0000
001111111100000000)が、5-1 には000A0 が夫々書込ま
れる。
Here, the configuration of the TLB 5 will be described with reference to FIG. FIG. 6 mainly shows functional blocks of the host bus bridge 4, 5-2 is a virtual memory address array for storing virtual memory addresses, and 5-1 is the physical memory of the main memory device paired with 5-2. This is a physical address array that holds addresses. 5-1 and 5-2 contain 32 entries. I / O
Processor 6 sets the upper 22 bits of the virtual memory address to 5-2
Write the upper 20 bits of the physical address to 5-1. The entry to be written is, for example, entry # 3. That is, 00FF00 (in binary notation, 0000 is assigned to # 3 of 5-2)
001111111100000000), 000A0 is written in 5-1 respectively.

【0051】尚、比較回路5-6 はアドレスバッファ4-30
と仮想記憶アドレスアレイ5-2 とのアドレス比較を行
い、ヒット判定回路5-5 と共に、いわゆるTLBヒッ
ト、ミスヒットの判定を行うものである。各バッファ4-
30〜4-33はアドレス、ライトデータ、コントロール情
報、リプライデータを夫々格納するものである。
The comparison circuit 5-6 is provided with an address buffer 4-30.
Is compared with the virtual memory address array 5-2, and together with the hit determination circuit 5-5, a so-called TLB hit or mishit is determined. Each buffer 4-
Reference numerals 30 to 4-33 store addresses, write data, control information, and reply data, respectively.

【0052】次に、I/Oプロセッサ6は10012 番地か
らの2 バイトに格納されるバイトカウントとデータの仮
想記憶アドレスを加算し、データ領域がページの境界を
越えるかどうかをチェックする。本例では、バイトカウ
ントを9KB、すなわち、2400(h) として説明する。バ
イトカウントが2400(h) であることから、データ転送は
3ページにまたがって行われることになる。つまり、仮
想記憶アドレスの00FF0 0000番地、00FF0 1000番地、00
FF0 2000番地から始まる3つのページを参照し、最後の
バイトは00FF0 23FF番地である。
Next, the I / O processor 6 adds the byte count stored in 2 bytes from address 10012 and the virtual storage address of the data, and checks whether the data area exceeds the page boundary. In this example, the byte count will be described as 9 KB, that is, 2400 (h). Since the byte count is 2400 (h), the data transfer is performed over three pages. In other words, the virtual memory addresses 00FF0 0000, 00FF0 1000, 00
Referring to three pages starting from FF0 2000, the last byte is 00FF0 23FF.

【0053】一方、これらの仮想記憶アドレスに対応す
る物理メモリアドレスは図4の如く設定されているもの
として説明する。すなわち、物理アドレス空間上では、
最初のページは000A 0000 番地から始まる4KBであ
り、2番目のページは000A 2000 番地から始まり、最後
のページは000A 4000 番地から始まる。アドレスから分
るように、物理アドレス空間では各々のページは連続し
ては配置されていない。
On the other hand, description will be made assuming that physical memory addresses corresponding to these virtual storage addresses are set as shown in FIG. That is, in the physical address space,
The first page is 4 KB starting at 000A 0000, the second page starts at 000A 2000, and the last page starts at 000A 4000. As can be seen from the address, each page is not arranged consecutively in the physical address space.

【0054】また、仮想記憶アドレス空間の00ff0 0000
から始まる3ページは、I/Oバス空間の00362000番地
から始まる領域に連続してマピングされている。I/O
プロセッサ6は2ページ以上に亘る転送を行う場合は、
次のページに対応するアドレス対を仮想記憶アドレスア
レイ5-2 のエントリ#4に書込む。すなわち、この5-2
のエントリ#4には00FF01を、5-1 のエントリ#4に00
A2を書込む。この時点では、3番目のページはTLBに
はセットされない。
Also, 00ff0 0000 of the virtual memory address space
Are mapped consecutively to an area starting from address 00362000 in the I / O bus space. I / O
When the processor 6 performs transfer over two or more pages,
The address pair corresponding to the next page is written to entry # 4 of virtual memory address array 5-2. That is, this 5-2
00FF01 for entry # 4 of 5-1 and 00 for entry # 4 of 5-1
Write A2. At this point, the third page is not set in the TLB.

【0055】次に、I/Oプロセッサ6はI/Oバスブ
リッジにある変換手段ADT8の設定を行う。図7を参
照して、ADT8の作用について説明する。前述したよ
うに、I/Oアダプタ10-nはI/Oバス9のアドレスを
用いてデータ転送を行う。ADT8はI/Oバスのアド
レスから仮想記憶アドレスへの変換を行うため用に作用
する。先ず、I/Oプロセッサ6はデータ領域の仮想記
憶アドレスとI/Oバスアドレスのマッピングを行う
(ステップ17)。仮想記憶アドレス00FF0 0000番地〜
00FF0 23FF番地の9KBをI/Oバス上のアドレスの00
36 2000 番地〜0036 43FF 番地にマッピングする場合を
例として説明する。
Next, the I / O processor 6 sets the conversion means ADT8 in the I / O bus bridge. The operation of the ADT 8 will be described with reference to FIG. As described above, the I / O adapter 10-n performs data transfer using the address of the I / O bus 9. The ADT 8 operates to convert an address on the I / O bus to a virtual memory address. First, the I / O processor 6 performs mapping between the virtual storage address of the data area and the I / O bus address (step 17). Virtual memory address 00FF0 0000 ~
00FF0 9KB of address 23FF is set to 00 of the address on the I / O bus.
An example in which mapping is performed from addresses 36 2000 to 0036 43FF will be described.

【0056】ADT8を構成する図7における8-1 はI
/Oアダプタ毎にエントリを持っており、データ転送の
対象となるI/Oアダプタ10-1に該当するエントリに00
FF00000番地と0036 2000 番地の差分である0FE9B を書
込む。4KBのページ内相対アドレスは同一であるた
め、下位12ビット分のアドレスを8-1 に保持する必要は
ない。この計算はI/Oプロセッサ6のマイクロプログ
ラムにより行われ、8-1への書込みはI/Oバスブリッ
ジ7を介して信号線7-5 を用いて行われる。
8-1 in FIG.
The I / O adapter 10-1 has an entry for each I / O adapter.
Write 0FE9B, which is the difference between address FF00000 and address 00362000. Since the relative addresses in the page of 4 KB are the same, it is not necessary to hold the address of the lower 12 bits in 8-1. This calculation is performed by a microprogram of the I / O processor 6, and writing to 8-1 is performed using the signal line 7-5 via the I / O bus bridge 7.

【0057】次にI/Oプロセッサ6はI/Oバスブリ
ッジ番号、I/Oアダプタ番号で示されるI/Oアダプ
タに、チャネルコマンドエントリより抽出したコマンド
とI/Oバスのアドレスとバイトカウントとデバイス番
号とを送る(ステップS18)。I/Oアダプタに送ら
れるコマンドは、I/Oアダプタ配下のデバイスに応じ
たコマンド(例えば、ディスクであればSCSIのコマンド
形式)にI/Oプロセッサ6が変換する。上記のコマン
ド、アドレス、バイトカウント、デバイス番号はI/O
プロセッサ6からI/OバスブリッジとI/Oバス9を
経てI/Oアダプタ10-1のレジスタに書込まれる。I/
Oアダプタ10-1のレジスタはI/Oバスのアドレス空間
に予めマッピングされており、I/Oプロセッサ6にと
っては既知の情報である。
Next, the I / O processor 6 assigns the command extracted from the channel command entry, the I / O bus address and the byte count to the I / O adapter indicated by the I / O bus bridge number and the I / O adapter number. The device number is sent (step S18). The command sent to the I / O adapter is converted by the I / O processor 6 into a command corresponding to a device under the I / O adapter (for example, a SCSI command format for a disk). The above commands, addresses, byte counts and device numbers are I / O
The data is written from the processor 6 to the register of the I / O adapter 10-1 via the I / O bus bridge and the I / O bus 9. I /
The register of the O adapter 10-1 is mapped in advance in the address space of the I / O bus, and is information known to the I / O processor 6.

【0058】次に、図7及び図8を参照してI/Oバス
ブリッジ7の動作について説明する。I/Oアダプタ10
-1はI/Oプロセッサ6からの書込みがあると、コマン
ドを解析し、デバイスを起動してデータ転送の準備を行
う。本実施例では、デバイスリード動作(デバイスから
主記憶装置2への書込み方向の転送)を例に説明する。
I/Oアダプタ10-1はデバイスからのデータを読込む
と、I/Oバス9にライトのリクエストを発行する。こ
の時に、バス上に出力されるアドレスはI/Oバスのア
ドレス空間のアドレスである0036 2000 を出力する。
Next, the operation of the I / O bus bridge 7 will be described with reference to FIGS. I / O adapter 10
-1 analyzes the command when there is a write from the I / O processor 6, activates the device, and prepares for data transfer. In this embodiment, a device read operation (transfer in the write direction from the device to the main storage device 2) will be described as an example.
When reading data from the device, the I / O adapter 10-1 issues a write request to the I / O bus 9. At this time, the address outputted on the bus outputs 00362000 which is the address of the address space of the I / O bus.

【0059】リクエストがあると(ステップS21)、
I/Oバスブリッジ7はバス調停制御回路7-1 でリクエ
ストの調停を行い(ステップS22)、I/Oバス9か
らアドレスをバッファ7-10に取込む(ステップS2
3)。リクエストIDキュー7-2はどのI/Oアダプタ
がバスを使っているかの情報を記憶する。取込んだアド
レス0036 2000 に8-1 に記憶された0FB9E を加算器8-2
で加算し、結果をレジスタ8-3 へ格納する。この加算の
ときには、8-1 の値の下位12ビット分0が補われる。ま
た、8-1 のどのエントリが使われるかはキュー7-2 の内
容により決まる。加算した結果は、仮想記憶アドレス00
FF0 0000番地となり、このアドレスがレジスタ8-3 を経
由してインタフェース制御回路7-3 を介してホストバス
ブリッジ4へ送られる。
When there is a request (step S21),
The I / O bus bridge 7 arbitrates the request by the bus arbitration control circuit 7-1 (step S22), and takes the address from the I / O bus 9 into the buffer 7-10 (step S2).
3). The request ID queue 7-2 stores information on which I / O adapter is using the bus. Adds 8FB to the fetched address 0036 2000 and adds 0FB9E stored in 8-1
And store the result in register 8-3. At the time of this addition, 0 is complemented by the lower 12 bits of the value of 8-1. Which entry of 8-1 is used is determined by the contents of the queue 7-2. The result of the addition is the virtual memory address 00
The address becomes FF0000 and this address is sent to the host bus bridge 4 via the register 8-3 and the interface control circuit 7-3.

【0060】尚、7-10はアドレスバッファ、7-11はコン
トロールバッファ、7-12はライトデータバッファ、7-13
はリプライデータバッファであり、7-14〜7-17はこれ等
各バッファに対応したレジスタである。
7-10, an address buffer, 7-11, a control buffer, 7-12, a write data buffer, 7-13.
Is a reply data buffer, and 7-14 to 7-17 are registers corresponding to these buffers.

【0061】次に、図6及び図9を参照してホストバス
ブリッジ4の動作を説明する。I/Oバスブリッジ7か
ら送られた仮想記憶アドレスは線4-40からバッファ4-30
に格納される(ステップS31)。そして、比較回路5-
6 において、このバッファ4-30の内容と仮想記憶アドレ
スアレイ5-2 との内容が比較される(比較の対象となる
のは上位22ビットのみである)(ステップS32)。こ
の仮想記憶アドレスアレイ5-2 は32個のエントリを持つ
が、処理を高速化するために32個のコンパレータで同時
に比較される(ステップS33)。コンパレータの一つ
を示したものが比較回路5-6 である。比較した結果、エ
ントリ#3に格納されている0FF00 が一致(ヒット)す
る。
Next, the operation of the host bus bridge 4 will be described with reference to FIGS. The virtual memory address sent from the I / O bus bridge 7 is transferred from the line 4-40 to the buffer 4-30.
(Step S31). Then, the comparison circuit 5-
In step 6, the contents of the buffer 4-30 and the contents of the virtual memory address array 5-2 are compared (only the upper 22 bits are to be compared) (step S32). The virtual memory address array 5-2 has 32 entries, but is compared simultaneously by 32 comparators to speed up the processing (step S33). One of the comparators is a comparison circuit 5-6. As a result of comparison, 0FF00 stored in entry # 3 matches (hits).

【0062】すると、エントリ#3と対をなす物理アド
レスアレイの内容(000A)が読出され(ステップS3
4)、4-30のレジスタの下位12ビットと連結されて、00
0A 0000 番地がアクセスされる(ステップS35)。チ
ャネルコマンドエントリがリードコマンドの場合、書込
みデータはI/Oアダプタ10-1、I/Oバス9、ライト
データバッファ7-12、4-31と送られて主記憶装置2へ書
込まれる。
Then, the contents (000A) of the physical address array paired with entry # 3 are read (step S3).
4), concatenated with lower 12 bits of register 4-30, 00
The address 0A 0000 is accessed (step S35). When the channel command entry is a read command, the write data is sent to the I / O adapter 10-1, the I / O bus 9, and the write data buffers 7-12 and 4-31, and written into the main storage device 2.

【0063】I/Oアダプタ10-1は最初のリクエストが
I/Oバス上で完了すると、次々とリクエストを発行す
る。I/Oバスの1回のトランザクションは32バイト単
位で発行されるので、I/Oアダプタ10-1がI/Oバス
9へ出力するアドレスはリクエストの度に+32 バイトさ
れる。I/Oバス9のアドレスが0036 2FE0 までは仮想
記憶アドレスアレイのエントリ#3がヒットし、003630
00〜0036 3FE0 番地まではエントリ#4がヒットする。
When the first request is completed on the I / O bus, the I / O adapter 10-1 issues requests one after another. Since one transaction on the I / O bus is issued in units of 32 bytes, the address output by the I / O adapter 10-1 to the I / O bus 9 is increased by +32 bytes for each request. Until the address of the I / O bus 9 is 0036 2FE0, entry # 3 of the virtual memory address array is hit, and 003630
Entry # 4 hits up to addresses 00-0036 3FE0.

【0064】I/Oバスのアドレスが036 4000になる
と、仮想記憶アドレスは00FF0 2000となり、仮想記憶ア
ドレスアレイ5-2 には一致するものがないため、ヒット
判定回路5-5 からI/Oプロセッサ6に割込みが送られ
る(ステップS36)。そして、動作一時停止がなされ
(ステップS37)、I/Oプロセッサ6からの動作再
開の指示をを待つ(ステップS38)。
When the address of the I / O bus becomes 036 4000, the virtual memory address becomes 00FF0 2000, and there is no match in the virtual memory address array 5-2. 6 is sent an interrupt (step S36). Then, the operation is temporarily stopped (step S37), and an operation restart instruction from the I / O processor 6 is waited (step S38).

【0065】I/Oプロセッサ6のマイクロプログラム
は、図10のフローに示す様に、仮想記憶アドレス00FF
0 2000の主記憶装置物理アドレスを計算して仮想記憶ア
ドレスアレイ5-2 のエントリ#3に書込む。その後、ア
ドレス比較のやり直しをホストバスブリッジの制御回路
(図示していない)に指示する。やり直し後のアドレス
比較はエントリ#3がヒットするので、以降の主記憶装
置アクセスを行える状態となり、よってTLB5への動
作の再開、すなわちホストバスブリッジ4への動作の再
開を指示する。以上の処理が図10のステップ41〜S
44で示されている。
The microprogram of the I / O processor 6 has a virtual memory address 00FF as shown in the flow chart of FIG.
0 The main memory physical address of 2000 is calculated and written to the entry # 3 of the virtual memory address array 5-2. After that, the control circuit (not shown) of the host bus bridge instructs a retry of the address comparison. In the address comparison after the redo, the entry # 3 hits, so that the main memory can be accessed thereafter. Therefore, the restart of the operation to the TLB 5, that is, the restart of the operation to the host bus bridge 4 is instructed. The above processing corresponds to steps 41 to S in FIG.
Indicated at 44.

【0066】以上は、チャネルコマンドエントリがデバ
イスリードの場合の説明であるが、チャネルコマンドエ
ントリデバイスライト(主記憶装置からI/Oアダプタ
へデータが流れる)の場合でも、アドレスの処理は同様
である。異なるのは、主記憶装置から読出されたデータ
が、図6のリプライデータバッファ4-33、図7のリプラ
イデータバッファ7-13を通ってI/Oバス9に送られ、
最終的にI/Oアダプタ10-1配下のデバイスに書込まれ
ることである。
The above description is for the case where the channel command entry is a device read. However, the address processing is the same in the case of a channel command entry device write (data flows from the main storage to the I / O adapter). . The difference is that the data read from the main storage device is sent to the I / O bus 9 through the reply data buffer 4-33 in FIG. 6 and the reply data buffer 7-13 in FIG.
Eventually, it is written to a device under the I / O adapter 10-1.

【0067】上記の例は、データ転送がデータ領域の先
頭のバイトから始まった場合を示したが、本発明の特徴
の一つはout-of-orderの転送にも対応できることであ
る。Out-of-orderの場合、前述した様にデータの転送が
先頭バイトアドレスから始まるとは限らない。例えば、
上記の例で、データ転送がI/Oバスのアドレスの0036
4000 番地、仮想記憶アドレス00FF0 2000番地から始ま
った場合を例に説明する。この場合、転送に先立ってセ
ットしたTLB5-2 のエントリ#3と#4とにはヒット
せずにI/Oプロセッサ6に割込みが起こる。
The above example shows the case where the data transfer starts from the first byte of the data area, but one of the features of the present invention is that it can cope with out-of-order transfer. In the case of out-of-order, data transfer does not always start from the first byte address as described above. For example,
In the above example, the data transfer is performed using the address 0036 of the I / O bus.
An example will be described in which the address starts from the address 4000 and the virtual memory address 00FF0 2000. In this case, the I / O processor 6 is interrupted without hitting the entries # 3 and # 4 of the TLB 5-2 set prior to the transfer.

【0068】この割込みに応答して、図10にも示した
様に、I/Oプロセッサ6は00FF02000番地に対応する
物理アドレスを計算し、エントリ#5に書込む。する
と、以降のデータ転送のアドレスは5-2 のエントリ#5
にヒットする。転送がI/Oバスのアドレス0036 43E0
(仮想記憶アドレスの00FF0 23E0)に達すると、アドレ
スが、例えば、0036 2000 (0FF00000)に戻ったとして
も、5-2 にはすでに有効なアドレス対がエントリ#3に
セットされているためにデータ転送を継続することがで
きる。全てのデータの転送が完了すると、I/Oプロセ
ッサ6はOSに完了の報告を行う(報告の手段は図示し
ていない)。
In response to this interrupt, as shown in FIG. 10, the I / O processor 6 calculates the physical address corresponding to the address 00FF02000 and writes it to entry # 5. Then, the address of the subsequent data transfer is entry # 5 of 5-2.
To hit. The transfer is performed on the I / O bus address 0036 43E0
When the address reaches (virtual storage address 00FF0 23E0), even if the address returns to, for example, 00362000 (0FF00000), since the valid address pair is already set in entry # 3 in 5-2, the data is The transfer can be continued. When the transfer of all data is completed, the I / O processor 6 reports the completion to the OS (reporting means is not shown).

【0069】本実施例では、アドレス変換手段5がI/
Oブリッジ7に、TLB5とI/Oプロセッサ6とがホ
ストバスブリッジ4に夫々存在する場合を例に説明した
が、I/Oプロセッサ6は、原理的には、ホストバスに
つながる独立した位置にあってもよいことは自明であ
る。本発明の他の実施例としては、図11に示すよう
に、ホストバスブリッジ4にI/Oキャッシュ12を搭
載して、データ転送の一層の高速化をはかる例が考えら
れる。
In the present embodiment, the address conversion means 5
In the example described above, the TLB 5 and the I / O processor 6 are provided in the O-bridge 7 and the I / O processor 6 is provided in the host bus bridge 4. However, in principle, the I / O processor 6 is located at an independent position connected to the host bus. It is obvious that there may be. As another embodiment of the present invention, as shown in FIG. 11, an example in which an I / O cache 12 is mounted on the host bus bridge 4 to further speed up data transfer can be considered.

【0070】[0070]

【発明の効果】第1の効果は、独自のアドレス空間を持
つI/Oバスサブスシテムをコンピュータシステム内部
に取込むことが可能である。その理由は、I/Oバスの
アドレス空間に仮想記憶アドレスの一部を動的にマッピ
ングできる様にしたためである。
The first effect is that an I / O bus subsystem having a unique address space can be incorporated into a computer system. The reason is that a part of the virtual memory address can be dynamically mapped in the address space of the I / O bus.

【0071】第2の効果は、仮想記憶アドレスを含むチ
ャネルプログラムの実行においても、out-of-orderのデ
ータ転送が可能となることである。その理由は、データ
のアドレスをI/Oバスのアドレスから仮想記憶アドレ
スに変換し、さらにTLBにより主記憶装置物理アドレ
スに変換するという2段階のアドレス変換を行うように
したためである。
A second effect is that data can be transferred out-of-order even when a channel program including a virtual memory address is executed. The reason is that a two-stage address conversion is performed in which the address of the data is converted from the address of the I / O bus to the virtual storage address and further converted to the physical address of the main storage device by the TLB.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の一実施例の全体の構成図である。FIG. 1 is an overall configuration diagram of an embodiment of the present invention.

【図2】アドレス空間の関係を示す図である。FIG. 2 is a diagram showing a relationship between address spaces.

【図3】CPU1のOSの動作を示すフロー図である。FIG. 3 is a flowchart showing the operation of the OS of the CPU 1;

【図4】チャネルプログラムとアドレスマッピングの例
を説明する図である。
FIG. 4 is a diagram illustrating an example of a channel program and address mapping.

【図5】I/Oプロセッサ6の動作を示すフロー図であ
る。
FIG. 5 is a flowchart showing an operation of the I / O processor 6;

【図6】ホストバスブリッジの構成図である。FIG. 6 is a configuration diagram of a host bus bridge.

【図7】I/Oバスブリッジ7の構成図である。FIG. 7 is a configuration diagram of an I / O bus bridge 7.

【図8】I/Oバスブリッジ7の動作フロー図である。FIG. 8 is an operation flow chart of the I / O bus bridge 7.

【図9】ホストバスブリッジの動作フロー図である。FIG. 9 is an operation flowchart of the host bus bridge.

【図10】TLBミスヒット時のI/Oプロセッサの動
作フロー図である。
FIG. 10 is an operation flowchart of the I / O processor at the time of a TLB mishit;

【図11】本発明の他の実施例の構成図である。FIG. 11 is a configuration diagram of another embodiment of the present invention.

【図12】従来技術の一例を示すブロック図である。FIG. 12 is a block diagram illustrating an example of a conventional technique.

【図13】従来技術の他の例を示すブロック図である。FIG. 13 is a block diagram showing another example of the related art.

【符号の説明】[Explanation of symbols]

1 CPU 2 主記憶装置 3 ホストバス 4 ホストバスブリッジ 5 TLB 6 I/Oプロセッサ 7 I/Oバスブリッジ 8 アドレス変換部(ADT) 9 I/Oバス 10-1〜10-3 I/Oアダプタ DESCRIPTION OF SYMBOLS 1 CPU 2 Main storage device 3 Host bus 4 Host bus bridge 5 TLB 6 I / O processor 7 I / O bus bridge 8 Address conversion part (ADT) 9 I / O bus 10-1 to 10-3 I / O adapter

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 仮想記憶システムが採用され、中央処理
装置と、主記憶装置と、これ等中央処理装置と主記憶装
置とを接続するホストバスと、前記仮想記憶システム及
び前記主記憶装置の各アドレス空間とは異なる固有のア
ドレス空間を有するI/Oバスと、前記I/Oバスに接
続され配下に入出力装置を有するI/Oアダプタとを含
むデータ処理システムであって、 前記I/Oバスに接続され、前記I/Oアダプタからの
リクエストに応答して前記I/Oバス上に出力されたア
ドレスを仮想記憶アドレスに変換する第一のアドレス変
換手段と、前記I/Oアダプタからのリクエストに応答
して前記第一のアドレス変換手段により変換された仮想
記憶アドレスを用いて前記主記憶装置へのアクセス要求
をなす手段とを有するI/Oバス制御手段と、 前記ホストバスに接続され、前記I/Oバス制御装置か
らのアクセス要求に応答して前記仮想記憶アドレスを前
記主記憶装置の物理アドレスに変換する第二のアドレス
変換手段と、この物理アドレスを用いて前記主記憶装置
をアクセスする手段とを有するホストバス制御手段と、
を含むことを特徴とするデータ処理システム。
A virtual storage system is adopted, a central processing unit, a main storage unit, a host bus connecting these central processing units and the main storage unit, and each of the virtual storage system and the main storage unit. A data processing system comprising: an I / O bus having a unique address space different from an address space; and an I / O adapter connected to the I / O bus and having an input / output device under control of the I / O bus. First address conversion means connected to a bus for converting an address output on the I / O bus into a virtual memory address in response to a request from the I / O adapter; Means for making an access request to the main storage device using the virtual storage address converted by the first address conversion means in response to the request. Second address translation means connected to the host bus for translating the virtual storage address into a physical address of the main storage device in response to an access request from the I / O bus control device; Means for accessing the main storage device by using a host bus control means,
A data processing system comprising:
【請求項2】 前記ホストバス制御手段は、前記アクセ
ス要求が前記主記憶装置に対するリード要求の場合に
は、前記主記憶装置からデータを読出して前記I/Oバ
ス制御手段へこの読出したデータを送出する手段を有す
ることを特徴とする請求項1記載のデータ処理システ
ム。
2. The host bus control means, when the access request is a read request to the main storage device, reads data from the main storage device and sends the read data to the I / O bus control means. 2. The data processing system according to claim 1, further comprising a sending unit.
【請求項3】 前記ホストバス制御手段は、前記アクセ
ス要求が前記主記憶装置に対するライト要求の場合に
は、前記主記憶装置ヘ前記I/Oバス制御手段からのデ
ータを書込む手段を有することを特徴とする請求項1ま
たは2記載のデータ処理システム。
3. The host bus control means includes means for writing data from the I / O bus control means to the main storage device when the access request is a write request to the main storage device. The data processing system according to claim 1 or 2, wherein:
【請求項4】 前記I/Oバス制御手段は、前記アクセ
ス要求が前記主記憶装置に対するリード要求の場合に
は、前記ホストバス制御手段からの送出データを前記I
/Oバスへ送出する手段を有することを特徴とする請求
項2〜3いずれか記載のデータ処理システム。
4. The I / O bus control means, if the access request is a read request to the main storage device, sends data sent from the host bus control means to the I / O bus control means.
4. A data processing system according to claim 2, further comprising means for sending data to an I / O bus.
【請求項5】 前記I/Oバス制御手段は、前記アクセ
ス要求が前記主記憶装置に対するライト要求の場合に
は、前記I/Oバスに送出されたデータを取込んで前記
ホストバス制御手段へ送出する手段を有することを特徴
とする請求項2〜4いずれか記載のデータ処理システ
ム。
5. The I / O bus control means, when the access request is a write request to the main storage device, fetches the data sent to the I / O bus and sends the data to the host bus control means. 5. The data processing system according to claim 2, further comprising a sending unit.
【請求項6】 仮想記憶システムが採用され、中央処理
装置と、主記憶装置と、これ等中央処理装置と主記憶装
置とを接続するホストバスと、前記仮想記憶システム及
び前記主記憶装置の各アドレス空間とは異なる固有のア
ドレス空間を有するI/Oバスと、このI/Oバスに接
続され配下に入出力装置を有するI/Oアダプタとを含
むデータ処理システムにおけるデータ処理方法であっ
て、 前記I/Oアダプタからのリクエストに応答して前記I
/Oバス上に出力されたアドレスを仮想記憶アドレスに
変換するステップと、 前記I/Oアダプタからのリクエストに応答してこの変
換された仮想記憶アドレスを用いて前記主記憶装置への
アクセス要求をなすステップと、 前記I/Oバス制御装置からのアクセス要求に応答して
前記仮想記憶アドレスを前記主記憶装置の物理アドレス
に変換するステップと、 この物理アドレスを用いて前記主記憶装置をアクセスす
るステップと、を有することを特徴とするデータ処理方
法。
6. A virtual storage system is adopted, a central processing unit, a main storage unit, a host bus connecting these central processing units and the main storage unit, and each of the virtual storage system and the main storage unit. A data processing method in a data processing system including an I / O bus having a unique address space different from an address space, and an I / O adapter connected to the I / O bus and having an input / output device under control thereof, In response to a request from the I / O adapter,
Converting the address output on the I / O bus into a virtual storage address; and responding to a request from the I / O adapter, using the converted virtual storage address to request access to the main storage device. Converting the virtual storage address to a physical address of the main storage device in response to an access request from the I / O bus control device; and accessing the main storage device using the physical address. And a data processing method.
JP10082046A 1998-03-27 1998-03-27 System and method for data processing Withdrawn JPH11282751A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10082046A JPH11282751A (en) 1998-03-27 1998-03-27 System and method for data processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10082046A JPH11282751A (en) 1998-03-27 1998-03-27 System and method for data processing

Publications (1)

Publication Number Publication Date
JPH11282751A true JPH11282751A (en) 1999-10-15

Family

ID=13763584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10082046A Withdrawn JPH11282751A (en) 1998-03-27 1998-03-27 System and method for data processing

Country Status (1)

Country Link
JP (1) JPH11282751A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100387006C (en) * 2000-04-18 2008-05-07 国际商业机器公司 Computer system and method of using network changing inside
JP2013535062A (en) * 2010-06-23 2013-09-09 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, computer system and computer program for managing address space in a computing environment
JP2014182675A (en) * 2013-03-21 2014-09-29 Nec Corp Input-output processing apparatus, address validity verification method and address validity verification program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100387006C (en) * 2000-04-18 2008-05-07 国际商业机器公司 Computer system and method of using network changing inside
JP2013535062A (en) * 2010-06-23 2013-09-09 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, computer system and computer program for managing address space in a computing environment
JP2014182675A (en) * 2013-03-21 2014-09-29 Nec Corp Input-output processing apparatus, address validity verification method and address validity verification program

Similar Documents

Publication Publication Date Title
US6321314B1 (en) Method and apparatus for restricting memory access
CA1176382A (en) Method and system for handling sequential data in a hierarchical store
US6742104B2 (en) Master/slave processing system with shared translation lookaside buffer
US6813653B2 (en) Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system
US6622214B1 (en) System and method for maintaining memory coherency in a computer system having multiple system buses
US5386524A (en) System for accessing information in a data processing system
US5263142A (en) Input/output cache with mapped pages allocated for caching direct (virtual) memory access input/output data based on type of I/O devices
AU595224B2 (en) Improved virtual memory computer system
US5666509A (en) Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof
US6487628B1 (en) Peripheral component interface with multiple data channels and reduced latency over a system area network
KR100515229B1 (en) Method and system of managing virtualized physical memory in a multi-processor system
JPH10187533A (en) Cache system, processor, and method for operating processor
JPS61141055A (en) Information processor
JPH0711793B2 (en) Microprocessor
US6742103B2 (en) Processing system with shared translation lookaside buffer
JPH11167523A (en) Computer system
JP2023179708A (en) Prefetch kill and retrieval in instruction cache
US5440708A (en) Microprocessor and storage management system having said microprocessor
JP2768503B2 (en) Virtual memory address space access control method
KR100373576B1 (en) System and method for invalidating an entry in a translation unit
JPH11282751A (en) System and method for data processing
US6324635B1 (en) Method and apparatus for address paging emulation
JP2000148665A (en) Data processor
JPH0540694A (en) Cache memory device
EP1262875A1 (en) Master/slave processing system with shared translation lookaside buffer

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050607