JP2006091972A - バスシステム及び半導体集積回路 - Google Patents

バスシステム及び半導体集積回路 Download PDF

Info

Publication number
JP2006091972A
JP2006091972A JP2004273226A JP2004273226A JP2006091972A JP 2006091972 A JP2006091972 A JP 2006091972A JP 2004273226 A JP2004273226 A JP 2004273226A JP 2004273226 A JP2004273226 A JP 2004273226A JP 2006091972 A JP2006091972 A JP 2006091972A
Authority
JP
Japan
Prior art keywords
bus
address
signal
register
packet
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.)
Granted
Application number
JP2004273226A
Other languages
English (en)
Other versions
JP4587756B2 (ja
Inventor
Yasuhiro Tawara
康宏 田原
Junichi Nishimoto
順一 西本
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.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
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 Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2004273226A priority Critical patent/JP4587756B2/ja
Priority to US11/213,795 priority patent/US7263565B2/en
Publication of JP2006091972A publication Critical patent/JP2006091972A/ja
Priority to US11/780,031 priority patent/US20070255872A1/en
Application granted granted Critical
Publication of JP4587756B2 publication Critical patent/JP4587756B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping

Abstract

【課題】 アクセス主体や各バスマスタのアドレス範囲の変更に容易に対処するための技術を提供する。
【解決手段】 複数のバスマスタ間で共有され、且つ、アクセス主体とそれに対応するアドレス情報とに対応して予め設定されたアクセス権情報が格納されたテーブル(170)を含み、バスマスタ毎のアクセス主体情報とバスマスタから出力されたアドレス情報とに基づいて、バスマスタ毎のアクセス権の有無を上記テーブルを参照して決定可能なアドレス監視部(160)を設ける。上記テーブルは、上記複数のバスマスタ間で共有されることから、アクセス主体や各バスマスタのアドレス範囲が変更された場合には、上記テーブルの書き換えを行えば良い。これによって、複数のバスマスタが共通のバスに接続された場合において、アクセス主体や各バスマスタのアドレス範囲の変更に容易に対処することができる。
【選択図】 図1

Description

本発明は、バスシステム、さらにはバスに接続されたハードウェアのアクセス権限制御技術に関し、例えば半導体集積回路に適用して有効な技術に関する。
メモリアドレス空間拡張装置において、タスクからの不正なアクセスによりデータ領域が書き換えられてしまうことを防止するための技術として、例えば特許文献1に記載された技術が知られている。それによれば、キャッシュ内に、実行中のタスク(または割り込み処理)に対するデータ領域へのアクセスの許可、不許可を定義したデータ領域アクセス権定義テーブルが設けられる。アドレス演算ユニットは、中央処理装置(CPU)から入力されたCPUアドレスからデータ領域IDを抽出する。レジスタバンク制御ユニットは、キャッシュ内の上記定義テーブルを参照して、IDレジスタに格納されている実行中のタスクのタスクID(または割り込み処理の割り込み番号)と上記抽出されたデータ領域IDとからそのタスクのデータ領域へのアクセス権を判定する。アクセスが許可されていない場合は、システムエラーとされ、アクセスが許可されている場合は、上記CPUアドレスを拡張アドレスに変換する処理が行われる。
また、ダイレクトメモリアクセスコントローラ(DMAC)によりDMA転送を行うにあたって、メモリが割当てられていないアドレスや他の用途に使用されているアドレスなど不正なアドレスにデータ転送が実行されてしまうことを防止するための技術として、例えば特許文献2に記載された技術が知られている。それによれば、DMACを用いてDMA転送を行う場合、メモリ及び周辺回路間でのデータの転送処理に用いられるアドレス範囲を参照して、一方(転送元)のアドレスのストア領域に格納されているデータを順次読出して、他方(転送先)のアドレスのストア領域に転送していく。また、一方及び他方のアドレスを示すデータはDMAC内のアドレスレジスタに格納されている。このとき、メモリ又は周辺回路に個別に割当てられた有効なアドレス範囲を予め有効アドレステーブルに格納しておき、転送処理を行う際にこの有効アドレステーブルに格納されたアドレス範囲と、各アドレスレジスタに格納した転送処理に用いるデータが示すアドレス範囲とを、監視部で比較して、転送処理に用いるデータが示すアドレス範囲が有効なアドレス範囲を逸脱した場合には、転送処理が中断されるようになっている。
特開2001−005726号公報(図2) 特開2001−297054号公報(図2)
上記特許文献1に記載された技術によれば、CPUにより、局所的にアクセス許可、不許可を判定し、上記特許文献2に記載された技術によれば、DMACにより、局所的にアクセス許可、不許可を判定しているため、そのようなCPUやDMAが共通のバスに接続される場合には、アクセス権判定の機能がCPUやDMACに分散され、アクセス権判定リソースが重複して存在するため、アクセス主体や各バスマスタのアドレス範囲が変更された場合には、アクセス権判定リソースの同一性を維持するための書き換え作業が面倒となる。特に、最近のシステムでは、上記CPUやDMACとは別に、MPEGや、3次元グラフィックス、暗号化処理などの多数のバスマスタが共通のバスに接続されるようになってきているため、アクセス権判定の機能が各バスマスタに分散されることの不都合は更に顕著になる。
本発明の目的は、複数のバスマスタが共通のバスに接続された場合において、アクセス主体や各バスマスタのアドレス範囲の変更に容易に対処可能な技術を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、複数のバスマスタが共通接続されたバスを含むバスシステムにおいて、上記複数のバスマスタ間で共有され、且つ、アクセス主体とそれに対応するアドレス情報とに対応して予め設定されたアクセス権情報が格納されたテーブルを含み、上記バスマスタ毎のアクセス主体情報と上記バスマスタから出力されたアドレス情報とに基づいて、上記バスマスタ毎のアクセス権の有無を上記テーブルを参照して決定可能なアドレス監視部を設ける。
上記アドレス監視部は、上記バスマスタ毎のアクセス主体情報と上記バスマスタから出力されたアドレス情報とに基づいて、上記バスマスタ毎のアクセス権の有無を上記テーブルを参照して決定する。上記テーブルは、上記複数のバスマスタ間で共有され、且つ、アクセス主体とそれに対応するアドレス情報とに対応して予め設定されたアクセス権情報が格納されている。上記テーブルは、上記複数のバスマスタ間で共有されることから、アクセス主体や各バスマスタのアドレス範囲が変更された場合には、上記テーブルの書き換えを行えば良い。つまり、アクセス権判定の機能が各バスマスタに分散されていないため、アクセス主体や各バスマスタのアドレス範囲の変更は、上記複数のバスマスタ間で共有された上記テーブルの書き換えでのみで容易に対処できる。
このとき上記アドレス監視部は、上記バスを介して転送可能なパケットの転送先アドレスによって一意的に決まる転送先のハードウェアへ上記パケットを転送するためのルーティングを可能とするルータに内蔵される。
上記アドレス監視部は、上記バスを介して取り込まれたアクセス主体情報をデコード可能な第1デコーダと、上記バスを介して入力されたアドレス情報をデコード可能な第2デコーダと、上記第1デコーダの出力と上記第2デコーダの出力とによって特定されるアクセス権情報を検出可能な検出回路と、上記検出回路の検出出力に基づいて、アクセス権の有無の判別情報を上記バスに出力可能な判別回路とを含んで構成することができる。
上記複数のバスマスタには、それぞれアクセス主体情報を必要に応じて上記バスに出力可能に保持するIDレジスタを設けることができる。
上記バスシステムと、それに結合された上記複数のバスマスタとを含んで半導体集積回路を形成することができる。
このとき、複数のバスマスタには中央処理装置が含まれ、上記アドレス監視部における上記テーブルは上記中央処理装置によって書き換え可能に構成することができる。
上記中央処理装置に含まれるアクセス主体情報は、上記中央処理装置がメモリ管理で使用されるプロセスIDとすることができる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、複数のバスマスタが共通のバスに接続された場合において、アクセス主体や各バスマスタのアドレス範囲の変更に容易に対処可能な技術を提供することができる。
バスシステムのルータにアドレス監視手段を付加する実施形態が本発明を実施するための最良の形態である。ルータは、バスに渡されたパケットの転送先アドレスを見て当該アドレスから一意的にきまる転送先ハードウェアへパケットへ送る手段である。パケットは一般的に転送先アドレス、転送データ、その他制御信号で構成するが本実施の形態では、ID番号をパケットに設定できる。バスに流れるパケットは必ずルータを通るので本発明のアドレス監視手段を付加するには最適の機能単位である。
アドレス監視手段が保有するアクセス権テーブルはアドレス範囲毎にID番号総数のビットを持ちその各ビットはID番号に対応する。各ビットには当該アドレス範囲に対して当該ビットに対応するID番号の所有者がアクセス権を持つか否かを0または1の値で記憶する。アクセス権テーブルには2通りのアクセス方法がある。アクセス権テーブルはアドレスマッピングされていてソフトウェアで読み書き可能である。また、アドレス範囲によりアクセス権テーブルの列を選択し、ID番号によりアクセス権テーブルの列を選択し、当該列と当該行が交差した位置のビットを読むことが可能である。
バスマスタがバスに流すパケットには転送先アドレス、転送データ、その他制御コードに加えて本実施の形態ではID番号を設定できる。このようなパケットを流すバスの物理的構成としてアドレス信号線、データ信号線、その他制御信号線に加えてID番号を流すID番号信号線を追加する。尚、ID番号信号線を追加しないで制御信号線にID番号を流す方式も別に考えられる。
各バスマスタはID番号を記憶するIDレジスタを一つ持つ。IDレジスタはアドレスがマッピングされていてソフトウェアで書き換え可能である。バスマスタが本来目的とする動作をする前にソフトウェアでIDレジスタにID番号を設定しておく。
バスマスタによりバスにパケットが流れるとパケットはルータを通り、ルータ内部のアドレス監視手段を通る。アドレス監視手段はパケットの転送先アドレスとID番号とを取得する。当該アドレスがテーブルのどのアドレス範囲に含まれるかを判定し当該ID番号に対応するビットの値を見る。当該ビットが0か1かの値によってエラーまたは正常を判断する。以下、本発明の実施形態をより具体的に説明する。
図1には、本発明にかかる半導体集積回路の一例とされるマイクロコンピュータが示される。このマイクロコンピュータは、特に制限されないが、公知の半導体製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。本実施例はバスマスタのIDレジスタに設定するID番号としてオペレーティングシステムが管理する仮想アドレス空間識別番号を使用している。
マイクロコンピュータ100は、特に制限されないが、CPUコア101、ルータ103、外部I/F(外部インタフェース)104、DMAC(Direct Memory Access Controller)105、3DGC(3−Dimension Graphics Controller)106を含む。メモリ107は、特に制限されないが、マイクロコンピュータ100の外部に配置されたDRAM(ダイナミック・ランダム・アクセス・メモリ)とされる。上記CPUコア101、ルータ103、外部I/F104、DMAC105、3DGC106は、内蔵バス102によって、互いに信号のやり取り可能に結合される。上記メモリ107は、メモリバス108を介して外部I/F104に接続される。外部I/F104は、外部にメモリ107だけでなく、複数のメモリや、他の半導体集積回路を接続することも可能である。
CPUコア101は、予め設定されたプログラムに従って所定の演算処理を行う機能を有し、特に制限されないが、MMU(Memory Management Unit)110と、IDレジスタ(IDentification register)120を含んで成る。MMU110は、TLB(Translation Lookaside Buffer)111と、PTE.ASID(Page Table Entry register’s Address Space IDentificatoin part)112を含む。TLB111は、64個の行と各行の構成要素を示す列から成る。TLB111の各行をエントリと呼び、117は第0エントリ、118は第1エントリである。以下第63エントリまであるが、図1では省略されている。TLB111の各列はValid113、ASID(Address Space IDentification)114、VPN(Virtual Page Number)115、PPN(Physical Page Number)116、その他のビットから成る。尚、その他のビットについては重要ではないため、その説明を省略する。
Valid113の要素は1ビットから成り、当該ビットの値が1のエントリは使用中で有効な内容を持ち、当該ビットの値が0のエントリは使用されず無効な内容を持つ。ASID114の要素はアドレス空間識別番号であり、ここでは8ビットの符号無し整数値とする。ASID番号とはプロセス毎に持つ仮想アドレス空間を識別するための番号で一般的にはプロセスID番号などと呼ばれる。仮想アドレス空間はある決まったサイズのページ(Page)に分割する。そのサイズは2のべき乗の値で示され、1Mバイト、64Mバイトなどのサイズから1つを選ぶ。VPN115の要素は0番地から始まる仮想アドレス空間を当該ページサイズに分割した時に何番目のページであるかを示し、ASID番号が示す仮想アドレス空間のうち使用中または使用する可能性の高いページ番号を記憶する。物理アドレス空間は仮想アドレス空間を分割したページのサイズと同じサイズで分割する。PPN116の要素は0番地から始まる物理アドレス空間を当該ページサイズに分割した時に何番目のページであるかを示す。以上をまとめて117のエントリを説明すると、Validビットが論理値“1”なので117のエントリは有効な値を持ち、ASID番号が01番の仮想アドレス空間のx番目のページを物理アドレス空間のm番目のページへ対応付けている。117のエントリが存在することにより、01番の仮想アドレス空間識別番号(ASID番号)を持つプロセスが仮想アドレス空間の第x番目のページの第p番目のワードをアクセスした時にMMU110が物理アドレス空間の第m番目のページの第p番目のワードへのアクセスに変換する。また、118のエントリはValidビットが1なのでエントリが有効な値を持ち、ASID番号がFE番の仮想アドレス空間のy番目のページを物理アドレス空間のn番目のページへ対応付けている。118のエントリが存在することにより、FE番の仮想アドレス空間識別番号を持つプロセスが仮想アドレス空間の第y番目のページの第q番目のワードをアクセスした時にMMU110が物理アドレス空間の第n番目のページの第q番目のワードへのアクセスに変換する。
PTE.ASID112は、現在CPUコア101が実行中の仮想アドレス空間識別番号を格納する。PTE.ASIDは、PTEレジスタのASID領域のことであり1つ以上のビットから成る。
IDレジスタ120は、PTE.ASID112と同じ値を持つ。CPUコア101はバスマスタでありパケットをバスに出力するときにIDレジスタ120の値をID信号134へ出力する。
内蔵バス102はバスマスタが内蔵バスに出力したパケットを転送する仕組みである。パケットは、特に制限されないが、制御命令、転送先アドレス、転送データ、ID番号を含んで成る。これらは各々の制御信号131、アドレス信号132、データ信号133、ID信号134としてバスクロック130に同期して内蔵バス102で媒介される。これらの信号はCPUコア101、ルータ103、外部I/F104、DMAC105、3DGC106へ接続されている。CPUコア101、ルータ103、外部I/F104、DMAC105、3DGC106には予め各々固有のアドレス範囲が割り付けられ、ルータ103はパケットをその転送先アドレスへ転送する機能を持つ。
外部I/F104は、制御信号131、アドレス信号132、データ信号133を含んで成るパケットを受け取り、SRAMやDRAMなど、マイクロコンピュータの外部へ接続されているメモリの種類に対応した信号へ変換して外部バス108へ出力し、メモリ107の所定のアドレスをリードまたはライトする。外部I/F104は、バススレーブである。バススレーブはバスマスタが開始したパケットを受け取ることは可能だが、バススレーブからパケットを開始することは無く、受け取ったパケットに対するレスポンスパケットをバスに出力するだけである。レスポンスパケットの所有者はバスマスタであり、バススレーブはID番号を記憶する必要がなくIDレジスタも無い。
DMAC105は、CPUコア101の介在なしにメモリ107との間で行われるデータ転送を制御する機能(ダイレクトメモリアクセスコントロール機能)を有し、特に制限されないが、制御レジスタ140、転送元アドレスレジスタ141、転送先アドレスレジスタ142、転送バイト数レジスタ143、および、IDレジスタ121を含んで成る。転送元アドレスレジスタ141、転送先アドレスレジスタ142、転送バイト数レジスタ143、および、IDレジスタ121は、アドレスが割り付けられ、CPUコアで実行されるプログラムからアドレスを指定してデータをリードまたはライト可能である。DMAC105の転送元アドレスレジスタ141、転送先アドレスレジスタ142、転送バイト数レジスタ143を予めプログラムで書き込み、制御レジスタ140に転送方法などを予め指定した状態で、制御レジスタ140の開始フラグに1を立てる。すると転送先アドレスから転送元アドレスへ転送バイト数だけメモリ内容を転送する。IDレジスタ121にはDMAC105の制御を司るプロセスの仮想アドレス空間識別番号と同じID番号をCPUコア101がドライバなどのプログラムで設定する。DMAC105はバスマスタであり、パケットをバスに出力するときにIDレジスタ121の値をID信号134へ出力する。
3DGC106は、3次元グラフィック処理の制御機能を有し、特に制限されないが、制御レジスタ150、フレームアドレスレジスタ151、IDレジスタ122を含んで成る。制御レジスタ150、フレームアドレスレジスタ151、IDレジスタ122はアドレスが割り付けられ、CPUコアで実行されるプログラムからアドレスを指定してデータをリードまたはライト可能である。3DGC106は制御レジスタ150に制御命令やパラメタを受け取り、フレームアドレスレジスタ151で示したメモリ領域の所定の位置にデータをリードまたはライト可能である。IDレジスタ122には、3DGC106の制御を司るプロセスの仮想アドレス空間識別番号と同じID番号をCPUコア101がドライバなどのプログラムで設定する。3DGC106はバスマスタでありパケットをバスに出力するときに、IDレジスタ122の値をID信号134へ出力する。
ルータ103は、内蔵バス102を介して転送可能なパケットの転送先アドレスによって一意的に決まる転送先のハードウェアへ上記パケットを転送するためのルーティング機能を有する。そしてこのルータ103にはアドレス監視手段160が設けられている。このアドレス監視手段160は、入力されたアドレス信号に基づくアクセス権監視機能を有し、特に制限されないが、アドレスレジスタ161、IDレジスタ162、アドレスデコーダ163、IDデコーダ164、検出回路165、エラー判別回路166、および、アクセス権テーブル170を含んで成る。アクセス権テーブル170には、アドレスが割り付けられ、CPUコア101で実行されるプログラムからアドレスを指定してデータをリードまたはライト可能とされる。ルータ103がパケットを受け取ると、アドレス監視手段160は当該パケットのアドレス信号をアドレスレジスタ161へ記憶し、当該パケットのID信号をIDレジスタ162へ記憶する。次にアドレスレジスタ161の値がアドレスデコーダ163でデコードされ、その出力によってアクセス権テーブル170における一つの行が選択される。これと並行してIDレジスタ162の値がIDデコーダ164でデコードされ、その出力によってアクセス権テーブル170における一つの列が選択される。アクセス権テーブル170において選択された行と選択された列が交差する位置のビットの値を検出回路165が検出しエラー判別回路166へ入力する。エラー判別回路166は、論理値“1”が入力されたときはエラーを出力しないでルータの正常処理をそのまま続行させ、論理値“0”が入力されたときはエラー信号を内蔵バス102の制御信号131に出力する。ここで、上記アドレス監視手段160が、本発明におけるアドレス監視部に対応する。
図2には、上記マイクロコンピュータ100における主要動作が示される。図2において、三角印で始まる手続きはハードウェアの動作とされ、丸印で始まる手続きはソフトウェアによる設定とされる。
システムリセット201では、マイクロコンピュータ100に初めて電源を投入した場合やマイクロコンピュータ100がリセット要求信号を受けたときにマイクロコンピュータ100が初期状態にされる。
処理202はシステムリセット201の後のハードウェアによる初期化である。処理202の第1番の手続きはルータ102のアドレス監視手段160のアクセス権テーブル170の初期化である。ここでは従来のマイクロコンピュータと同様にアドレス監視手段160が無い場合と同じ動作になるように、アクセス権テーブル170の全ビットを論理値“1”に設定している。この場合、如何なるアドレスへの如何なるID番号によるアクセスも許可する設定である。尚、アクセス権テーブル170の初期値はシステムに依存して適宜変更してよい。処理202の第1番手続きの他にシステムリセット手続きが行われることは言うまでもない。
処理203はソフトウェアによる初期化である。
処理203の第1番手続きで例外処理ハンドラを含むOSの仮想アドレス空間識別番号を00に設定する。本例ではCPUコア101のIDレジスタ120にPTE.ASID112に格納されている現在の仮想アドレス空間識別番号の値をコピーして使用しているが、OSを通常プロセスと区別するために仮想アドレス空間識別番号としてOS専用の特別な値を割り付けることができる。
処理203の第2番手続きでハードウェアがPTE.ASID112の値をCPUコア101のIDレジスタ120へコピーする。
処理203の第3番手続きの第a手続きでOSが全アドレスをアクセスできるように初期化し、第b手続きで−1(0xFF)を含む未生成の仮想アドレス空間識別番号がどのアドレスもアクセスできないように初期化してる。
処理203の第4番手続きでCPUコア101を除くバスマスタのIDレジスタに仮想アドレス空間識別番号として−1(0xFF)を設定する。仮想アドレス空間識別番号−1(0xFF)は仮想アドレス空間識別番号に使用しない特別な番号とする。本実施例ではDMAC105のIDレジスタ121に−1(0xFF)を設定し、3DGC106のIDレジスタ122に−1(0xFF)を設定する。
処理203の第5番手続きでアクセス権テーブル170をソフトウェアで排他的にリードまたはライトするときに取得するセマフォを生成する。ここでセマフォとは、複数のプロセスが同時実行されるマルチタスクOSにおいて同期をとるための仕組みであり、リソースの占有状態を管理する一種のフラグとされる。
処理203の第6番手続きでCPUコア101以外のバスマスタのIDレジスタをソフトウェアで排他的にリードまたはライトするときに取得するセマフォを生成する。
処理203が終了するとOSの初期化が完了しOSが定常状態に入る。定常状態は基本的に無限ループであり、イベントや要求の発生に応じて所定の処理を行う。
判断210で新しいプロセスの生成要求が発生した場合に処理220を実行する。
処理220の第1番手続きで、未使用のID番号を生成し、新しいプロセスの仮想アドレス空間識別番号とする。
判断211で或るプロセスの仮想アドレス空間に切り替え要求が発生した場合に処理221を実行する。
処理221の第1番手続きで、当該プロセスのID番号をPTE.ASID112に設定し仮想アドレス空間を当該プロセスへ切り替える。第2番手続きでハードウェアによりPTE.ASID112の値をIDレジスタ120へコピーする。
判断212でOSの仮想アドレス空間に切り替え要求が発生した場合に処理222を実行する。
処理222の第1番手続きで、PTE.ASID112に0を設定し、仮想アドレス空間をOSへ切り替える。第2番手続きでハードウェアによりPTE.ASID112の値をIDレジスタ120へコピーする。
判断213で物理メモリブロックを確保するイベントが発生した場合に、実際に物理メモリを確保する手続きに加えて処理223を実行する。物理メモリブロックを確保するイベントは、(1)OSがアドレス空間の切り替え時にページフォルトが発生しないように予め仮想アドレス空間のページに物理アドレス空間のページを割り付ける時、(2)ページフォルトが発生しページフォルトが発生した仮想アドレス空間のページへ物理アドレス空間のページを割り付ける時、(3)物理アドレスプロックを獲得するシステムコールを呼んだ時、などに発生する。(1)と(2)の場合は当該仮想アドレス空間のID番号を使用する。(3)の場合はシステムコールを呼んだ仮想アドレス空間のID番号を使用する。
処理223の第1番手続きで、アクセス権テーブル170のセマフォを取得する。本セマフォは処理203の第5番手続きで生成されたものである。第2番手続きで、アクセス権テーブル170で確保した物理メモリブロックのアドレス範囲に対応する行と当該ID番号の列が交差するビットに1を設定する。第3番手続きでアクセス権テーブル170のセマフォを解放する。
判断214でCPUコア101を除くバスマスタを確保するイベントが発生した場合に処理224を実行する。
処理224の第1番手続きで、当該バスマスタのセマフォを獲得する。因みに本セマフォは処理203の第6番手続きで生成されている。第2番手続きで当該バスマスタのIDレジスタに当該バスマスタを使用する仮想アドレス空間識別番号を設定する。この手続きで当該バスマスタは当該仮想アドレス空間と同じアクセス権を持つ。例えばバスマスタの一つであるDMAC105は資源数が決まっているのでセマフォで管理しDMAC105を獲得するためのドライバプログラムを作成する。本ドライバプログラムはDMAC105のセマフォを獲得すると共にDMAC105のIDレジスタ121にDMACの確保主体であるプロセスの仮想アドレス空間識別番号を設定する。3DGC106も同様である。
判断215でバスマスタが「xxxxxxxx番地」をアクセスするイベントが発生した場合、処理225をハードウェアが実行する。
処理225の第1番手続きでxxxxxxxx番地をアドレス信号132へ出力し、バスマスタのIDレジスタの値をID信号134へ出力する。同時に制御信号を制御信号131でやり取りし、必要ならばデータをデータ信号133へ出力する。第2番手続きでルータ103は当該アドレスをアドレスレジスタ161に記憶し、当該ID信号の値をIDレジスタ162に記憶する。第3番手続きでアドレスレジスタ161の値をアドレスデコーダ163でデコードしアクセス権テーブル170の行を選択し、同時に、IDレジスタ162の値をIDデコーダ164でデコードしアクセス権テーブル170の列を選択する。第4番手続きで当該行と当該列が交差した部分のビットの値を検出回路165で抽出しエラー判別回路166へ出力し、その値が1ならば正常動作を続け、その値が0ならばエラー信号を制御信号131へ出力する。
判断216で既存プロセスの消滅要求が発生した場合、処理226を実行する。
処理226の第1番手続きでルータ103のアドレス監視手段160のアクセス権テーブル170のセマフォを取得する。第2番手続きでアクセス権テーブル170の当該プロセスのID番号に対応した列のビットを0に設定し、当該ID番号によるアクセスを禁止する。第3番手続きで当該セマフォを解放する。
判断217でCPUコア101を除くバスマスタを解放するイベントが発生した場合、処理227を実行する。
処理227の第1番手続きで当該バスマスタのIDレジスタに−1(0xFF)を設定する。第2番手続きで処理224で獲得していたセマフォを解放し、当該バスマスタ固有の解放手続きがあればそれを実行する。
判断218でOSのシャットダウン要求が発生した場合、端子230へ移る。当該要求が無い場合は判断210へ戻り同じことを繰り返す。
図1のTLB111のエントリ117を見ると、プロセスの論理ページへの初期物理ページ割付け、または、ページフォルトのリカバリ処理により、仮想アドレス空間識別番号(ASID)01のプロセスの第x番目の論理ページがメモリ107の第m番目の物理ページに割り付けられている。同時にアクセス権テーブル170の第m行の第01列に1を設定することによりメモリ107の第m番目の物理ページに仮想アドレス空間識別番号(ASID)01と同じID番号によるアクセスが許可されている。
同じく、TLB111のエントリ118を見ると、プロセスの論理ページへの初期物理ページ割付、または、ページフォルトのリカバリ処理により、仮想アドレス空間識別番号(ASID)FEのプロセスの第y番目の論理ページがメモリ107の第n番目の物理ページに割り付けられている。同時にアクセス権テーブル170の第n行の第FE列に1を設定することによりメモリ107の第n番目の物理ページに仮想アドレス空間識別番号(ASID)FEと同じID番号によるアクセスが許可されている。
メモリ107の第kページはTLB111のエントリに特に記述していないが、仮想アドレス空間識別番号(ASID)01のプロセスがシステムコールによりアクセス権を獲得し、仮想アドレス空間識別番号(ASID)FEのプロセスもシステムコールによりアクセス権を獲得した結果、アクセス権テーブル170の第k行目は第01列と第FE列に1を設定していて、メモリ107の第k番目の物理ページに仮想アドレス空間識別番号(ASID)01またはFEのいずれのID番号によるアクセスも許可されている。
アクセス権テーブル170の第00列はID番号が0のOSのアクセス権を示し、リソースが有効に存在するアドレス範囲全部に対応するビットに1が設定されている。
アクセス権テーブル170の第FF列はID番号が−1即ちFFのバスマスタのアクセス権を示す。ID番号として−1(FF)をもつバスマスタは全てのリソースへアクセス権を持たない。
図1のアクセス権テーブル170の状態では、CPUコア101のカレントプロセス(現在のプロセス)の仮想アドレス空間識別番号が01のときはメモリ107の第mページと第kページがアクセスできる。CPUコア101のカレントプロセスの仮想アドレス空間識別番号がFEのときはメモリ107の第nページと第kページがアクセスできる。CPUコア101のカレントプロセスの仮想アドレス空間識別番号がjのときはメモリ107の第mページ、第nページ、第kページのいずれもアクセスできない。CPUコア101のカレントプロセスの仮想アドレス空間識別番号が00のときは存在する全リソースへアクセスできる。CPUコア101のカレントプロセスの仮想アドレス空間識別番号がFFのときは全リソースへアクセスできない。
図1のアクセス権テーブル170の状態では、DMAC105のIDレジスタ121の値が01のときはメモリ107の第mページと第kページがアクセスできる。DMAC105のIDレジスタ121の値がFEのときはメモリ107の第nページと第kページがアクセスできる。DMAC105のIDレジスタ121の値がjのときはメモリ107の第mページ、第nページ、第kページのいずれもアクセスできない。DMAC105のIDレジスタ121の値が00のときは存在する全リソースへアクセスできる。DMAC105のIDレジスタ121の値がFFのときは全リソースへアクセスできない。
図1のアクセス権テーブル170の状態では、3DGC106のIDレジスタ122の値が01のときはメモリ107の第mページと第kページがアクセスできる。3DGC106のIDレジスタ122の値がFEのときはメモリ107の第nページと第kページがアクセスできる。3DGC106のIDレジスタ122の値がjのときははメモリ107の第mページ、第nページ、第kページのいずれもアクセスできない。3DGC106のIDレジスタ122の値が00のときは存在する全リソースへアクセスできる。3DGC106のIDレジスタ122の値がFFのときは全リソースへアクセスできない。
以上のようにCPUコア101だけでなく、DMAC105や3DGC106のような各バスマスタに対してもアクセス監視手段によりアクセス権の制御をすることができる。
図4には8バイトロードにおける正常ケースが示され、図5には8バイトロードにおけるエラーケースが示され、図6には8バイトストアにける正常ケースが示され、図7には8バイトストアにおけるエラーケースが示される。
内蔵バス102はバスクロック130に同期して転送を行う。1クロックサイクルで転送されるデータをセルという。パケットは1つ以上のセルから構成される。内蔵バス102において、転送を要求する回路をバスマスタというのに対して、転送に応答する回路をバススレーブという。内蔵バス上のトランザクションはバスマスタが要求内容を含むリクエストパケットをバススレーブに送信することにより開始される。バススレーブが応答内容を含むレスポンスパケットをバスマスタに送信することによりトランザクションが完了する。バスマスタとバススレーブの間に位置して、パケットを中継する回路がルータ103である。ルータ103は一つのバスマスタから受信したリクエストパケットを指定されたバススレーブへ転送する。また、ルータ103は一つのバススレーブから受信したレスポンスパケットをトランザクションを開始したバスマスタへ送信する。
clock(クロック)信号はバスクロック130に対応し、論理値“0”と論理値“1”とが一定周期で交互に繰返される。本clock信号の立ち上がりエッジに同期して、バスマスタやルータ、バススレーブに、後述するその他の信号が取り込まれる。
あるバスマスタからあるバススレーブへの一つのトランザクションは、(1)バスマスタからルータ103へ送信、(2)ルータ103からバススレーブへ送信、(3)バススレーブからルータ103へ送信、(4)ルータ103からバススレーブへ送信、の順に送信されることで完了する。但し、エラー判別回路166でエラーが検出された場合は(1)(4)のみが実行される。以下、上記(1)〜(4)の送信について詳述する。
上記(1)バスマスタからルータ103への送信においては、(1a)request(リクエスト)信号、(1b)grant(グラント)信号、(1c)end_of_packet(エンドオブパケット)信号、(1d)address(アドレス)信号、(1e)opcode(オペコード)信号、(1f)data(データ)信号、(1g)source(ソース)信号、(1h)ID信号、が使用される。ここで、(1a)request信号はバスマスタのリクエストパケット転送に使用する信号のうち、(1d)address信号、(1e)opcode信号、(1f)data信号、(1g)source信号、(1h)ID信号が有効な値を出力していることを示す。(1b)grant信号は、ルータ103がリクエストパケットを受信可能であることをバスマスタに示す信号である。clock信号の立ち上がりエッジに於いて、(1a)request信号と(1b)grant信号が共に論理値“1”の時にリクエストパケットのセルがバスマスタ(M)からルータ103(R)へ転送される。(1a)request信号が論理値“0”の時は転送されない(ルータ103が無視する)。(1c)end_of_packet信号は、バスマスタがリクエストパケットの最後のセルを出力していることを示す。(1d)address信号は、トランザクションの転送先アドレスを示す。(1e)opcode信号はトランザクションの種類と転送サイズとを示す。本信号のエンコーディング例を図3のopcodeの列に示す。(1f)data信号は、バスマスタからルータ103へ転送するデータである。(1g)source信号は、ルータ103がレスポンスパケットを中継するときにレスポンスパケットの送信先を特定できるようにするためにバスマスタが出力する識別子である。(1h)ID信号はバスマスタからルータ103へ転送するID番号である。
上記(2)ルータ103(R)からバススレーブ(S)への送信においては、(2a)request(リクエスト)信号、(2b)grant(グラント)信号、(2c)end_of_packet(エンドオブパケット)信号、(2d)address(アドレス)信号、(2e)opcode(オペコード)信号、(2f)data(データ)信号、(2g)source(ソース)信号、が使用される。ここで、(2a)request信号はルータ103からバススレーブへのリクエストパケット転送に使用する信号のうち、(2c)end_of_packet信号、(2d)address信号、(2e)opcode信号、(2f)data信号、(2g)source信号が有効な値を出力していることを示す。(2b)grant信号は、バススレーブがリクエストパケットを受信可能であることを示す。clock信号の立ち上がりエッジに於いて、(2a)request信号と(2b)grant信号が共に論理値“1”の時にリクエストパケットのセルがルータ103からバススレーブへ転送される。本信号が論理値“0”の時は転送されない。(2c)end_of_packet信号は、ルータ103がリクエストパケットの最後のセルを出力していることを示す。(2d)address信号はトランザクションの転送先アドレスを示す。(2e)opcode信号はトランザクションの種類と転送サイズとを示す。本信号のエンコーディング例を図3のopcodeの列に示す。(2f)data信号は、ルータ103からバススレーブへ転送するデータである。(2g)source信号は、ルータ103がレスポンスパケットを中継するときにレスポンスパケットの送信先を特定できるようにするためにバスマスタが出力する識別子である。
上記(3)バススレーブからルータ103への送信においては、(3a)response_request(レスポンスリクエスト)信号、(3b)response_grant(レスポンスグラント)信号、(3c)response_end_of_packet(レスポンスエンドオブパケット)信号、(3d)response_opcode(レスポンスオペコード)信号、(3e)response_data(レスポンスデータ)信号、(3f)response_source(レスポンスソース)信号、が使用される。ここで、(3a)response_request信号は、バススレーブのレスポンスパケット転送に使用する信号のうち、(3d)response_opcode信号、(3e)response_data信号、(3f)response_source信号が有効な値を出力していることを示す。clock信号の立ち上がりエッジに於いて、(3a)response_request信号と(3b)response_grant 信号が共に論理値“1”の時にレスポンスパケットのセルがバススレーブからルータ103へ転送される。本信号が論理値“0”の時は転送されない(ルータ103が無視する)。(3b)response_grant信号は、ルータ103がレスポンスパケットを受信可能であることを示す。clock信号の立ち上がりエッジに於いて、(3a)response_request信号と本(3b)response_grant 信号が共に論理値“1”の時にレスポンスパケットのセルがバススレーブからルータ103へ転送される。本信号が論理値“0”の時は転送されない。(3c)response_end_of_packet信号は、バススレーブがレスポンスパケットの最後のセルを出力していることを示す。本信号は論理値“1”の時に有効であり論理値“0”のときに無効である。(3a)response_request信号が論理値“0”のとき、本信号は論理値“0”に落とす。(3d)response_opcode信号は、トランザクションの結果を示す。本信号のエンコード例を図3のresponse_opcodeの列に示す。(3e)response_data信号は、バススレーブからルータ103へ転送されるデータである。(3f)response_source信号は、ルータ103がレスポンスパケットをルーティングするときにレスポンスパケットの送信先バスマスタを特定できるようにするための識別子である。バススレーブは、リクエストパケット受信時に(2g)source信号の値を保存し、対応するレスポンスパケットを送信する時に(3f)response_source信号として出力する。
上記(4)ルータ103からバスマスタへの送信においては、(4a)response_valid(レスポンスバリッド)信号、(4b)response_end_of_packet(レスポンスエンドオブパケット)信号、(4c)response_opcode(レスポンスオペコード)信号、(4d)response_data(レスポンスデータ)信号、(4e)response_source(レスポンスソース)信号、が使用される。ここで、(4a)response_valid信号は、ルータ103からバスマスタへのレスポンスパケットに使用される(4b)response_end_of_packet信号、(4c)response_opcode信号、(4d)response_data信号、(4e)response_source信号が有効な値を出力していることを示す。clock信号の立ち上がりエッジに於いて、本(4a)response_valid信号が論理値“1”の時にレスポンスパケットのセルがルータ103からバスマスタ(M)へ転送される。(4b)response_end_of_packet信号は、ルータ103がレスポンスパケットの最後のセルを出力していることを示す。本信号は論理値“1”の時に有効であり、論理値“0”のときに無効である。(4c)response_opcode信号は、トランザクションの結果を示す。本信号のエンコード例を図3のresponse_opcodeの列に示す。特にアドレス監視手段160のエラー判別回路166でエラーが発生した場合にはエラーのコードを設定する。(4d)response_data信号は、ルータ103からバスマスタへ転送されるデータである。(4e)response_source信号は、対応するリクエストパケット送信時にバスマスタが出力した(1g)source信号と同じ値である。
図1において内蔵バス102は、制御信号131、アドレス信号132、データ信号133、ID信号134で構成されている。ここで、制御信号131は、次の信号群の総称とされる。すなわち、制御信号131は、(1a)request信号、(1b)grant信号、(1c)end_of_packet信号、(1e)opcode信号、(1g)source信号、(2a)request信号、(2b)grant信号、(2c)end_of_packet信号、(2e)opcode信号、(2g)source信号、(3a)response_request信号、(3b)response_grant信号、(3c)response_end_of_packet信号、(3d)response_opcode信号、(3f)response_source信号、(4a)response_valid信号、(4b)response_end_of_packet信号、(4c)response_opcode信号、(4e)response_source信号、の総称とされる。
アドレス信号132は、(1d)address信号、(2d)address信号の総称である。
データ信号133は、(1f)data信号、(2f)data信号、(3e)response_data信号、(4d)response_data信号、の総称である。
ID信号134は、(1h)ID信号に対応する。
上記例によれば、以下の作用効果を得ることができる。
(1)上記アクセス権テーブル170は、CPUコア101、DMAC105、3DGC106などの複数のバスマスタ間で共有されることから、アクセス主体や各バスマスタのアドレス範囲が変更された場合には、CPUコア101の制御によって上記アクセス権テーブル170の書き換えを行えば良い。換言すれば、アクセス権判定の機能が各バスマスタに分散されていないため、アクセス主体や各バスマスタのアドレス範囲の変更は、上記複数のバスマスタ間で共有されたアクセス権テーブル170の書き換えでのみで容易に対処できる。
(2)ルータ103は、もともとパケットをその転送先アドレスへ転送する機能を有し、そのような機能を有するルータ103にアドレス監視手段160を設けることにより、各種レジスタなどの構成部品の共通化を図ることができるため、ルータ103とは別個にアドレス監視手段160を形成する場合に比べて素子数の低減を図ることができる。
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば上記の例では、PTE.ASID112と別にIDレジスタ120を設け、PTE.ASID112が持つ値をIDレジスタ120へハードウェアを用いてコピーしているが、これを変形してPTE.ASID112とIDレジスタ120とを同一のハードウェアリソースとする別の実施例を作ることができる。
また、PTE.ASID112からIDレジスタ120へハードウェアが自動コピーする代わりにPTE.ASID112の値を参考にIDレジスタ120へソフトウェアまたはハードウェアでID番号を書き込むようにしても良い。この場合、IDレジスタ120に設定するID番号は仮想アドレス空間識別番号の粒度と異なる粒度のID番号を設定できる。また、CPUコア101のIDレジスタ120、DMAC105のIDレジスタ121、3DGC106のIDレジスタ122、ルータ103のアクセス権テーブル170の列で同じ粒度のID番号を使用する。
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコンピュータに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種半導体集積回路に広く適用することができる。
本発明は、バスを含むことを条件に適用することができる。
本発明にかかる半導体集積回路の一例であるマイクロコンピュータの全体的な構成例ブロック図である。 上記マイクロコンピュータにおける主要動作を示すフローチャートである。 上記マイクロコンピュータにおけるopcode信号とresponse_opcode信号とのエンコード例の説明図である。 上記マイクロコンピュータにおける8バイトロードでアドレス監視手段により正常と判断される場合の動作タイミング図である。 上記マイクロコンピュータにおける8バイトロードでアドレス監視手段によりエラーと判断される場合の動作タイミング図である。 上記マイクロコンピュータにおける8バイトストアでアドレス監視手段により正常と判断される場合の動作タイミング図である。 上記マイクロコンピュータにおける8バイトストアでアドレス監視手段によりエラーと判断される場合の動作タイミング図である。
符号の説明
100 マイクロコンピュータ
101 CPUコア
102 内蔵バス
103 ルータ
104 メモリI/F
105 DMAC
106 3DGC
107 メモリ
108 メモリバス
110 MMU
111 TLB
112 PTE.ASID
113 TLB111のValid列
114 TLB111のASID列
115 TLB111のVPN列
116 TLB111のPPN列
117 TLB111の第0エントリ
118 TLB111の第1エントリ
120 CPUコア101のIDレジスタ
121 DMAC105のIDレジスタ
122 3DGC106のIDレジスタ
130 バスクロック
131 制御信号
132 アドレス信号
133 データ信号
134 ID信号
140 DMAC105の制御レジスタ
141 DMAC105の転送元アドレスレジスタ
142 DMAC105の転送先アドレスレジスタ
143 DMAC105の転送バイト数レジスタ
150 3DGC106の制御レジスタ
151 3DGC106のフレームアドレスレジスタ
160 アドレス監視手段
161 アドレスレジスタ
162 IDレジスタ
163 アドレスデコーダ
164 IDデコーダ
165 検出回路
166 エラー判別回路
170 アクセス権テーブル

Claims (7)

  1. 複数のバスマスタが共通接続されたバスを含むバスシステムであって、上記複数のバスマスタ間で共有され、且つ、アクセス主体とそれに対応するアドレス情報とに対応して予め設定されたアクセス権情報が格納されたテーブルを含み、上記バスマスタ毎のアクセス主体情報と上記バスマスタから出力されたアドレス情報とに基づいて、上記バスマスタ毎のアクセス権の有無を上記テーブルを参照して決定可能なアドレス監視部を備えて成るバスシステム。
  2. 上記アドレス監視部は、上記バスを介して転送可能なパケットの転送先アドレスによって一意的に決まる転送先のハードウェアへ上記パケットを転送するためのルーティングを可能とするルータに内蔵される請求項1載のバスシステム。
  3. 上記アドレス監視部は、上記バスを介して取り込まれたアクセス主体情報をデコード可能な第1デコーダと、
    上記バスを介して入力されたアドレス情報をデコード可能な第2デコーダと、
    上記第1デコーダの出力と上記第2デコーダの出力とによって特定されるアクセス権情報を検出可能な検出回路と、
    上記検出回路の検出出力に基づいて、アクセス権の有無の判別情報を上記バスに出力可能な判別回路と、を含んで成る請求項2載のバスシステム。
  4. 上記複数のバスマスタは、それぞれアクセス主体情報を必要に応じて上記バスに出力可能に保持するIDレジスタを含む請求項3載のバスシステム。
  5. 請求項1乃至4何れか1項記載のバスシステムと、それに結合された上記複数のバスマスタとを含んで一つの半導体基板に形成された半導体集積回路。
  6. 複数のバスマスタには中央処理装置が含まれ、上記アドレス監視部における上記テーブルは上記中央処理装置によって書き換え可能とされた請求項5記載の半導体集積回路。
  7. 上記中央処理装置に含まれるアクセス主体情報は、上記中央処理装置がメモリ管理で使用されるプロセスIDとされた請求項6載の半導体集積回路。
JP2004273226A 2004-09-21 2004-09-21 半導体集積回路装置 Expired - Fee Related JP4587756B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2004273226A JP4587756B2 (ja) 2004-09-21 2004-09-21 半導体集積回路装置
US11/213,795 US7263565B2 (en) 2004-09-21 2005-08-30 Bus system and integrated circuit having an address monitor unit
US11/780,031 US20070255872A1 (en) 2004-09-21 2007-07-19 Bus system and semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004273226A JP4587756B2 (ja) 2004-09-21 2004-09-21 半導体集積回路装置

Publications (2)

Publication Number Publication Date
JP2006091972A true JP2006091972A (ja) 2006-04-06
JP4587756B2 JP4587756B2 (ja) 2010-11-24

Family

ID=36146726

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004273226A Expired - Fee Related JP4587756B2 (ja) 2004-09-21 2004-09-21 半導体集積回路装置

Country Status (2)

Country Link
US (2) US7263565B2 (ja)
JP (1) JP4587756B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014081738A (ja) * 2012-10-15 2014-05-08 Nagoya Univ バスパーティション構造を備えるコンピュータ
JP2016015158A (ja) * 2015-09-02 2016-01-28 ルネサスエレクトロニクス株式会社 半導体装置
JP2021507362A (ja) * 2017-12-15 2021-02-22 シー−スカイ マイクロシステムズ カンパニー,リミテッド 間接アクセスメモリコントローラ向けの保護機能を追加するための機器

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7769579B2 (en) 2005-05-31 2010-08-03 Google Inc. Learning facts from semi-structured text
US7587387B2 (en) 2005-03-31 2009-09-08 Google Inc. User interface for facts query engine with snippets from information sources that include query terms and answer terms
US8682913B1 (en) 2005-03-31 2014-03-25 Google Inc. Corroborating facts extracted from multiple sources
US9208229B2 (en) * 2005-03-31 2015-12-08 Google Inc. Anchor text summarization for corroboration
US7831545B1 (en) 2005-05-31 2010-11-09 Google Inc. Identifying the unifying subject of a set of facts
US8996470B1 (en) 2005-05-31 2015-03-31 Google Inc. System for ensuring the internal consistency of a fact repository
US7406711B2 (en) * 2005-09-02 2008-07-29 Motorola, Inc. Method and apparatus for enforcing independence of processors on a single IC
US8260785B2 (en) 2006-02-17 2012-09-04 Google Inc. Automatic object reference identification and linking in a browseable fact repository
US20080077749A1 (en) * 2006-09-22 2008-03-27 Daniel Scott Cohen Access control of memory space in microprocessor systems
US8122026B1 (en) 2006-10-20 2012-02-21 Google Inc. Finding and disambiguating references to entities on web pages
US8347202B1 (en) 2007-03-14 2013-01-01 Google Inc. Determining geographic locations for place names in a fact repository
US8812435B1 (en) 2007-11-16 2014-08-19 Google Inc. Learning objects and facts from documents
TWI528248B (zh) * 2008-04-02 2016-04-01 Elan Microelectronics Corp Capacitive touch device, touch sensing control method and control circuit applied in capacitive touch device
DE102013203365A1 (de) * 2013-02-28 2014-08-28 Siemens Aktiengesellschaft Verfahren und Schaltungsanordnung für kontrollierte Zugriffe auf Slave-Einheiten in einem Ein-Chip-System
JP2021022061A (ja) * 2019-07-25 2021-02-18 キオクシア株式会社 ストレージ装置、メモリアクセス制御システムおよびメモリアクセス制御方法
KR20210085284A (ko) 2019-12-30 2021-07-08 삼성전자주식회사 Pim 메모리 디바이스, pim 메모리 디바이스를 포함하는 컴퓨팅 시스템 및 pim 메모리 디바이스의 동작 방법
CN116955265B (zh) * 2023-09-20 2023-12-05 合肥创发微电子有限公司 一种i2c总线系统通信方法、装置、设备及介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62118438A (ja) * 1985-11-19 1987-05-29 Fujitsu Ltd Cpuid切替制御方式
JPS6371749A (ja) * 1986-09-12 1988-04-01 Fujitsu Ltd メモリ保護方式
JPH01276230A (ja) * 1988-04-27 1989-11-06 Mitsubishi Electric Corp 初期マイクロプログラムロード方式
JPH03296159A (ja) * 1990-04-13 1991-12-26 Nippon Telegr & Teleph Corp <Ntt> Dma装置のメモリアクセス方式
JPH06236223A (ja) * 1993-02-08 1994-08-23 Toshiba Corp Cpu制御装置及びcpu制御方法
JPH06301632A (ja) * 1993-04-19 1994-10-28 Hitachi Ltd Dma制御装置および制御方法
JPH08272679A (ja) * 1995-03-30 1996-10-18 Shinko Electric Co Ltd 産業用コンピュータ
JP2001005726A (ja) * 1999-04-20 2001-01-12 Nec Corp メモリアドレス空間拡張装置及びプログラムを記憶した記憶媒体
JP2003198356A (ja) * 2001-12-25 2003-07-11 Hitachi Ltd 半導体チップおよび集積回路
JP2003274141A (ja) * 2002-03-15 2003-09-26 Ricoh Co Ltd 画像処理装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL276308A (ja) * 1961-03-24
US4253114A (en) * 1976-04-08 1981-02-24 Twin County Trans-Video Inc. High security subscription television system employing real time control of subscriber's program reception
US4245306A (en) * 1978-12-21 1981-01-13 Burroughs Corporation Selection of addressed processor in a multi-processor network
US4253146A (en) * 1978-12-21 1981-02-24 Burroughs Corporation Module for coupling computer-processors
US4306219A (en) * 1980-03-26 1981-12-15 Micro-Magnetic Industries, Inc. Vending machine acquisition system
US5784649A (en) * 1996-03-13 1998-07-21 Diamond Multimedia Systems, Inc. Multi-threaded FIFO pool buffer and bus transfer control system
US6044225A (en) * 1996-03-13 2000-03-28 Diamond Multimedia Systems, Inc. Multiple parallel digital data stream channel controller
JPH10177560A (ja) * 1996-12-17 1998-06-30 Ricoh Co Ltd 記憶装置
US5907689A (en) * 1996-12-31 1999-05-25 Compaq Computer Corporation Master-target based arbitration priority
US6085296A (en) * 1997-11-12 2000-07-04 Digital Equipment Corporation Sharing memory pages and page tables among computer processes
US6665601B1 (en) * 1998-12-22 2003-12-16 Case Corporation Communications system for managing messages across a vehicle data bus
JP3716126B2 (ja) * 1999-03-17 2005-11-16 株式会社日立製作所 ディスクアレイ制御装置及びディスクアレイ
JP2001297054A (ja) 2000-04-11 2001-10-26 Sharp Corp Dmaの転送逸脱防止方法及びdmaコントローラ
CA2388938C (en) * 2001-06-08 2010-05-04 The Distributions Systems Research Institute Terminal-to-terminal communication connection control system for ip full service
US6748499B2 (en) * 2001-11-15 2004-06-08 International Business Machines Corporation Sharing memory tables between host channel adapters
US6851056B2 (en) * 2002-04-18 2005-02-01 International Business Machines Corporation Control function employing a requesting master id and a data address to qualify data access within an integrated system
US20050152378A1 (en) * 2003-12-12 2005-07-14 Bango Joseph J. Method of providing guaranteed delivery through the use of the internet for priority e-mail, files and important electronic documents
US7613881B2 (en) * 2004-06-08 2009-11-03 Dartdevices Interop Corporation Method and system for configuring and using virtual pointers to access one or more independent address spaces
US7474632B2 (en) * 2004-06-30 2009-01-06 International Business Machines Corporation Method for self-configuring routing devices in a network

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62118438A (ja) * 1985-11-19 1987-05-29 Fujitsu Ltd Cpuid切替制御方式
JPS6371749A (ja) * 1986-09-12 1988-04-01 Fujitsu Ltd メモリ保護方式
JPH01276230A (ja) * 1988-04-27 1989-11-06 Mitsubishi Electric Corp 初期マイクロプログラムロード方式
JPH03296159A (ja) * 1990-04-13 1991-12-26 Nippon Telegr & Teleph Corp <Ntt> Dma装置のメモリアクセス方式
JPH06236223A (ja) * 1993-02-08 1994-08-23 Toshiba Corp Cpu制御装置及びcpu制御方法
JPH06301632A (ja) * 1993-04-19 1994-10-28 Hitachi Ltd Dma制御装置および制御方法
JPH08272679A (ja) * 1995-03-30 1996-10-18 Shinko Electric Co Ltd 産業用コンピュータ
JP2001005726A (ja) * 1999-04-20 2001-01-12 Nec Corp メモリアドレス空間拡張装置及びプログラムを記憶した記憶媒体
JP2003198356A (ja) * 2001-12-25 2003-07-11 Hitachi Ltd 半導体チップおよび集積回路
JP2003274141A (ja) * 2002-03-15 2003-09-26 Ricoh Co Ltd 画像処理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014081738A (ja) * 2012-10-15 2014-05-08 Nagoya Univ バスパーティション構造を備えるコンピュータ
JP2016015158A (ja) * 2015-09-02 2016-01-28 ルネサスエレクトロニクス株式会社 半導体装置
JP2021507362A (ja) * 2017-12-15 2021-02-22 シー−スカイ マイクロシステムズ カンパニー,リミテッド 間接アクセスメモリコントローラ向けの保護機能を追加するための機器
JP7201686B2 (ja) 2017-12-15 2023-01-10 シー-スカイ マイクロシステムズ カンパニー,リミテッド 間接アクセスメモリコントローラ向けの保護機能を追加するための機器

Also Published As

Publication number Publication date
US7263565B2 (en) 2007-08-28
US20070255872A1 (en) 2007-11-01
JP4587756B2 (ja) 2010-11-24
US20060080485A1 (en) 2006-04-13

Similar Documents

Publication Publication Date Title
JP4587756B2 (ja) 半導体集積回路装置
US10289569B2 (en) Information processing device and processor
JP4945053B2 (ja) 半導体装置、バスインターフェース装置、およびコンピュータシステム
JP4514066B2 (ja) データ処理装置及びデータ処理装置におけるアクセス制御方法
JP2008033893A (ja) マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法
JP2007508607A (ja) 複数のプロセッサと1つのメモリシステムを有するシステムのためのメモリインタフェース
JP2000047974A (ja) バス制御コントローラのバス調停方法、バス制御コントローラ及び電子機器のシステム
JP2008225906A (ja) 情報処理システム及びその情報処理システムを構成するコア識別コントローラ
JP5578698B2 (ja) 半導体データ処理装置及びデータ処理システム
US6260132B1 (en) Method and apparatus for secure address re-mapping
JP2004062910A (ja) マルチコアプロセッサにセマフォを具現化し、共通資源へのアクセスを制御する方法
JP2008250386A (ja) アクセス制御装置及びコンピュータシステム
JP4965974B2 (ja) 半導体集積回路装置
JP2008210280A (ja) 半導体装置及びdmaコントローラ
JP5464676B2 (ja) 半導体装置
JP2008123333A5 (ja)
JP5324676B2 (ja) プロセッサ、バスインターフェース装置、およびコンピュータシステム
JP2010049718A (ja) 半導体装置
JPS58201157A (ja) バンクメモリの制御回路
JP5856220B2 (ja) ナビゲーションシステム
JP2004021422A (ja) マイクロコンピュータ
JP2010244584A (ja) 半導体装置、バスインターフェース装置、およびコンピュータシステム
JP2002032352A (ja) マルチプロセッサシステム
JPS62274445A (ja) マイクロ・コンピユ−タ・システムにおける特権保護方式
JPH02285441A (ja) キャッシュ制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100416

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100511

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100712

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100907

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100907

R150 Certificate of patent or registration of utility model

Ref document number: 4587756

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130917

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees