JP2014081781A - 情報処理システム - Google Patents

情報処理システム Download PDF

Info

Publication number
JP2014081781A
JP2014081781A JP2012229082A JP2012229082A JP2014081781A JP 2014081781 A JP2014081781 A JP 2014081781A JP 2012229082 A JP2012229082 A JP 2012229082A JP 2012229082 A JP2012229082 A JP 2012229082A JP 2014081781 A JP2014081781 A JP 2014081781A
Authority
JP
Japan
Prior art keywords
boot program
storage unit
unit
information processing
processing system
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.)
Pending
Application number
JP2012229082A
Other languages
English (en)
Inventor
Tetsushi Mori
哲史 森
Tamon Sadasue
多聞 貞末
Masaru Aoki
賢 青木
Naoya Morita
直也 守田
Naoya Ohashi
直弥 大橋
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2012229082A priority Critical patent/JP2014081781A/ja
Publication of JP2014081781A publication Critical patent/JP2014081781A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】マルチコアによる複数OSの起動において、ROM容量を削減し、起動を高速化する。
【解決手段】 記憶部104は、実行部102a(CPUコア1)、実行部103a(CPUコア2)に共通のブートプログラムを格納する。制御部101は、記憶部104に格納されたブートプログラムを記憶部105に展開する。仮想メモリ管理部102bは、実行部102aの仮想アドレスを、記憶部105にアクセス可能な物理アドレスに変換し、仮想メモリ管理部103bは、実行部103aの仮想アドレスを、記憶部105にアクセス可能な物理アドレスに変換し、実行部102a、103bがブートプログラムを実行する。
【選択図】図1

Description

本発明は、起動を高速化した情報処理システムに関する。
従来、マルチコアシステムにおいて、複数のOSを高速に起動する種々の方法が提案されている。例えば、OSのデータを分割してRAMに読み込んでいき、読み込みが完了した部分より随時実行することで、高速に起動する手法がある(特許文献1)。また、共有資源のハードウェア初期化を、先行して実行することで、複数OSの起動を高速化する方法もある(特許文献2)。
しかし、上記した従来の手法では、新たなプログラムが必要となるため、プログラムを格納するROM容量のサイズが増加し、起動が遅くなるという問題がある。
本発明は上記した課題に鑑みてなされたもので、
本発明の目的は、マルチコアによる複数OSの起動において、ROM容量を削減し、起動を高速化した情報処理システムを提供することにある。
本発明は、異なる制御プログラム上で動作する複数の処理手段と、前記複数の処理手段が共通に使用するブートプログラムを格納した第1の記憶手段と、前記複数の処理手段に設定された同一の仮想アドレスにより参照される第2の記憶手段を備え、前記第2の記憶手段に前記ブートプログラムを格納したことを最も主要な特徴とする。
本発明によれば、ROM容量を削減できるので、メモリコストを削減することができ、またROMからRAMへロードするプログラムのサイズを削減できるので、OSの起動時間を短縮することができる。
本発明の実施例の情報処理システムの構成を示す。 本発明の情報処理システムの起動シーケンスを示す。 実行するブートプログラムを説明する図である。 本発明のメモリ配置を示す。 一般的なメモリ配置を示す。
以下、発明の実施の形態について図面により詳細に説明する。本発明は、マルチコアのシステムにおける起動処理に際して、仮想メモリ管理の仮想アドレスを使用し、ほとんどのプログラムを共通化することによってROM容量を削減している。ROM容量を削減することで、ROMからRAMへの展開を高速化し、OSの起動を高速化する。
図1は、本発明の実施例の情報処理システムの構成を示す。図1において、101は制御部(subCPU)、102は実行部102a(CPUコア1)と仮想メモリ管理部(MMU1)102bを有する第1の処理部、103は実行部103a(CPUコア2)と仮想メモリ管理部(MMU2)103bを有する第2の処理部、104は記憶部1(ROM)、105は記憶部2(RAM)、106はデバイス(HDD1)、107はデバイス(HDD2)、108はバスである。上記した構成例では処理部(CPUコア)が2個であるが、本発明はこれに限定されず、処理部(CPUコア)数は2個以上でもよい。また、デバイスはHDDに限定されず、他のものでもよい。
記憶部1(ROM)104は、実行部102a、実行部103aに共通のブートプログラムを格納し、記憶部2(RAM)105は、ブートプログラムを展開し、実行部102a、実行部103aの実行データを配置する。制御部(subCPU)101は、記憶部104に格納されたブートプログラムを、記憶部105に展開(コピー)する。仮想メモリ管理部1(MMU1)102bは、実行部102aの仮想アドレスを、記憶部105にアクセス可能な物理アドレスに変換し、仮想メモリ管理部2(MMU2)103bは、実行部103aの仮想アドレスを、記憶部105にアクセス可能な物理アドレスに変換する。実行部102a、103aは、それぞれプログラムを実行する演算回路である。HDD106は、実行部102a(CPUコア1)用のデバイスであり、CPUコア1用のOS1(制御プログラム)が格納され、HDD107は、実行部103a(CPUコア2)用のデバイスであり、CPUコア2用のOS2(制御プログラム)が格納されている。制御部(subCPU)101は、記憶部(ROM)104に格納されているブートプログラムを記憶部(RAM)105に展開し(a)、展開されたブートプログラムを実行部102a、実行部103aで実行する(b)。
本発明の情報処理システムでは、バス108上に、制御部101、マルチコアのCPUコア102a、CPUコア103a、ブートプログラムが格納されているROM104、ブートプログラムを展開するRAM105、デバイス106、107が配置されていて、いずれのCPUコア102a、CPUコア103aからも、同一の仮想アドレスでアクセスする構成を採っている。
本発明では、仮想メモリ管理部(Memory Management Unit)102b、103bを用いて、複数のCPUコア102a、CPUコア103aで使用する共有資源(RAM105、デバイス106、107)を分離し、起動処理を行うブートプログラムは、複数のCPUコア102a、CPUコア103aに共通のものを使用する(ただし、仮想メモリ管理部の設定に関しては、異なる設定を行うため別々のプログラムとなる)。
このように、起動処理のプログラムの大部分を共通化することにより、ROM104の容量を削減することができる。ROM104の容量が削減できるので、ブート時のROM104からRAM105への展開を高速化することができる。
図2は、本発明の情報処理システムの起動シーケンスを示す。まず、制御部101が実行され、制御部101がROM104に格納されているブートプログラムを読み出し(201)、RAM105へロードする(202)。ここでロードするブートプログラムは、実行部102a、実行部103aが共通で使用する同一のプログラムで構成する。
ブートプログラムのロードが完了した後、実行部102a、実行部103aを起動し(203、204)、ロードしたブートプログラムを実行させる。実行部102a、実行部103aでは、実行データ(命令)を読み出し(205、209)、実行部102a、実行部103aの仮想アドレスを設定し(206、210)、設定された仮想アドレスを物理アドレスに変換し(207、211)、その後、同一のブートプログラムを実行し、各実行部でブートプログラムを動作させる(208、212)。ここで、ブートプログラムの大部分を同一のプログラムとすることができるため、必要なROM104のサイズを小さくできる。
図2に示すシーケンスが完了すると、実行部102a、実行部103aはブートプログラムの実行を開始する。図3は、実行するブートプログラムを説明する図である。まず、キャッシュの有効化やCPUレジスタの設定のためにCPUを初期化する(ステップ301、401)。この処理は、マルチコアであれば同じ命令で実行可能である。次いで、実行部102a(CPUコア1)用、実行部103a(CPUコア2)用のデバイスを初期化し(ステップ302、402)、実行部102a(CPUコア1)用のデバイス、実行部102a(CPUコア1)用のデータを使用したブートプログラムを実行し(ステップ303)、実行部103a(CPUコア2)用のデバイス、実行部103a(CPUコア2)用のデータを使用したブートプログラムを実行する(ステップ403)。
ステップ302〜303とステップ402〜403は、通常、アドレスが違うものを使用するため別のプログラムとなってしまうが、後述する本発明のメモリ配置とすることで、同一のプログラムを配置できる。従って、ステップ302とステップ402、ステップ303とステップ403を同一のプログラムとすることができるため、ROM容量を少なくすることができる。
図4は、仮想メモリ管理による仮想アドレスの設定後のメモリ配置を示す。501はCPUコア1の仮想アドレス空間、502はCPUコア2の仮想アドレス空間、503は物理アドレス空間である。また、物理アドレス空間におけるデータ(CPUコア1用)、データ(CPUコア2用)は、ブートプログラム実行時に参照されるデータであり、デバイス(CPUコア1用)、デバイス(CPUコア2用)は、ブートプログラム実行時に参照されるデバイス指定領域である。
実際のメモリアクセスを行うためのアドレスが物理アドレスであり、CPUコア1とCPUコア2では、仮想アドレスを設定している。メモリの先頭(下)にブートプログラムがロードされている。仮想アドレスの設定は、CPUコア1とCPUコア2で重ならないよう設定するが、仮想アドレスをみるとCPUコア1、CPUコア2ともに同じメモリ配置となっている。
仮想アドレスの設定が完了した後に、同一のブートプログラムを実行する。データやデバイスなど、重複できないものは、物理的に分離して設定しているため、別々のアドレスでアクセスする必要がある。本発明では、仮想アドレスを用いることで、CPUコア1とCPUコア2の同一の仮想アドレスを、別々のデバイスやデータを指定する物理アドレスに変換することにより、同一のブートプログラムを使っても、デバイスとデータの使用をCPUコアごとの領域に割り当てることが可能となる。
図5は、一般的なメモリ配置を示す。図5に示すように、CPUコア1、CPUコア2がそれぞれブートプログラムをロードし、実行する構成を採っている。そのため、2つのブートプログラムが必要となり、ROMのサイズが大きくなる。これに対して、本発明では、このROMのサイズを削減し、ROM104からRAM105への展開時間を短縮することで、起動時間の高速化を図っている。
なお、上記した実施例では、ROM104からRAM105への展開を制御部101が実行したが、制御部101の代わりに実行部102aまたは102bが実行するように構成を変更してもよい。
101 制御部
102 第1の処理部
103 第2の処理部
102a、103a 実行部
102b、103b 仮想メモリ管理部
104 ROM
105 RAM
106、107 HDD
108 バス
特開2009−104443号公報 特開2008−186175号公報

Claims (5)

  1. 異なる制御プログラム上で動作する複数の処理手段と、前記複数の処理手段が共通に使用するブートプログラムを格納した第1の記憶手段と、前記複数の処理手段に設定された同一の仮想アドレスにより参照される第2の記憶手段を備え、前記第2の記憶手段に前記ブートプログラムを格納したことを特徴とする情報処理システム。
  2. 前記第1の記憶手段に格納された前記ブートプログラムを読み出し、前記第2の記憶手段に書き込む制御手段を備えたことを特徴とする請求項1記載の情報処理システム。
  3. 前記各処理手段は、前記仮想アドレスを物理アドレスに変換する変換手段と、前記変換された物理アドレスにより指定される前記第2の記憶手段の所定データを用いて前記ブートプログラムを実行する実行手段を備えたことを特徴とする請求項1記載の情報処理システム。
  4. 前記各処理手段用の制御プログラムが格納されたデバイスを備え、前記実行手段は前記ブートプログラムを実行する際に、前記変換された物理アドレスにより指定される前記第2の記憶手段が指示するデバイスを用いて実行することを特徴とする請求項3記載の情報処理システム。
  5. 前記複数の処理手段の内の一つの処理手段が、前記第1の記憶手段に格納された前記ブートプログラムを読み出し、前記第2の記憶手段に書き込むことを特徴とする請求項1または2記載の情報処理システム。
JP2012229082A 2012-10-16 2012-10-16 情報処理システム Pending JP2014081781A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012229082A JP2014081781A (ja) 2012-10-16 2012-10-16 情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012229082A JP2014081781A (ja) 2012-10-16 2012-10-16 情報処理システム

Publications (1)

Publication Number Publication Date
JP2014081781A true JP2014081781A (ja) 2014-05-08

Family

ID=50785924

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012229082A Pending JP2014081781A (ja) 2012-10-16 2012-10-16 情報処理システム

Country Status (1)

Country Link
JP (1) JP2014081781A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860331B2 (en) 2016-08-26 2020-12-08 Canon Kabushiki Kaisha Information processing apparatus with semiconductor integrated circuits, control method therefor, and storage medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860331B2 (en) 2016-08-26 2020-12-08 Canon Kabushiki Kaisha Information processing apparatus with semiconductor integrated circuits, control method therefor, and storage medium

Similar Documents

Publication Publication Date Title
EP2847669B1 (en) Hybrid operating system
CN103605568B (zh) 一种多线程管理方法及装置
US9244883B2 (en) Reconfigurable processor and method of reconfiguring the same
US10877793B2 (en) Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system
JP5894496B2 (ja) 半導体装置
US8996700B2 (en) Automated workload performance and availability optimization based on hardware affinity
US20150293774A1 (en) Data processing systems
US20130117549A1 (en) Method for executing multiple operating systems and electronic apparatus
WO2018149157A1 (zh) 一种vcpu线程的调度方法及装置
CN114090171A (zh) 虚拟机创建方法、迁移方法及计算机可读介质
JP5466768B2 (ja) メモリ・アクセスを制御する装置およびコンピュータ
KR102205899B1 (ko) 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치
JP7421480B2 (ja) 寿命平均化のためのブート時の物理コア割り当てに関する論理的な疑似ランダム
JP2014081781A (ja) 情報処理システム
US20120005464A1 (en) Start up processing method, information processing apparatus, and computer-readable storage medium storing program
US11182183B2 (en) Workload placement using conflict cost
US9619277B2 (en) Computer with plurality of processors sharing process queue, and process dispatch processing method
JP5365840B2 (ja) マルチプロセッサシステム、及びマルチプロセッサシステムの動作方法
JP6146092B2 (ja) 仮想化システム、仮想サーバ、仮想マシン制御方法、及び仮想マシン制御プログラム
WO2019188177A1 (ja) 情報処理装置
US20190278714A1 (en) System and method for memory access latency values in a virtual machine
US20130166887A1 (en) Data processing apparatus and data processing method
JP2014109938A (ja) プログラム起動装置、プログラム起動方法、及びプログラム起動プログラム
JP6973856B2 (ja) 情報処理装置、実行方法及びプログラムの修正方法
JP6035993B2 (ja) 情報処理装置、装置管理方法および装置管理プログラム