JPH06282700A - Cpuを内蔵した情報記録媒体 - Google Patents
Cpuを内蔵した情報記録媒体Info
- Publication number
- JPH06282700A JPH06282700A JP5089330A JP8933093A JPH06282700A JP H06282700 A JPH06282700 A JP H06282700A JP 5089330 A JP5089330 A JP 5089330A JP 8933093 A JP8933093 A JP 8933093A JP H06282700 A JPH06282700 A JP H06282700A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- recording medium
- information recording
- processing
- common
- 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
Links
Abstract
ログラムサイズをより低減する。 【構成】 ICカードのROM内に、複数の命令の実行
に共通する共通処理A,C,Eと、各命令ごとに別々な
固有処理B1〜B6,D1〜D6と、を独立して記述し
たプログラムを用意しておく。共通処理を1本化するこ
とによりプログラムサイズを低減できる。各命令につい
て、連続した番号からなる命令番号を対応づけるテーブ
ルを用意し、命令が与えられたら、これに対応する命令
番号を一時記憶しておき、この命令番号を参照して、固
有処理のための分岐(S12,S15)を行う。
Description
記録媒体、特に、外部から与えられる複数の命令コード
のそれぞれに対応した所定の仕事を実行するCPUを内
蔵した情報記録媒体に関する。
として、ICカードが注目を集めている。特に、CPU
を内蔵したICカードは、高度なセキュリティを有する
ため、種々の分野での利用が期待されている。一般にI
Cカードは、RAM,ROM,EEPROMといった3
種類のメモリを内蔵しており、いずれも内蔵CPUによ
ってアクセスされる。ICカードに対するデータの授受
は、リーダライタ装置によって行われる。リーダライタ
装置からICカードに対して所定の命令コードを与える
と、この命令コードはICカード内のCPUによって解
読され、これに対応した所定の仕事が実行される。たと
えば、データの書込命令であれば、リーダライタ装置か
らICカードへ与えたデータがICカード内のメモリに
書き込まれ、データの読出命令であれば、ICカード内
のメモリから読み出されたデータがリーダライタ装置へ
転送される。
数十種類程度用意されている。たとえば、同じ書込命令
であっても、レコード単位のデータ書き込みを行う命令
と、バイナリデータの書き込みを行う命令と、では異な
る命令となる。また、メモリに対する書き込み/読み出
しだけではなく、ファイルのロック/アンロックを行う
命令、新たなファイルを定義する命令、ファイルを消去
する命令、キーの照合を行う命令、自己診断ルーチンを
実行させる命令、など様々な仕事を行うために様々な命
令が用いられているのが実情である。これらの命令は、
それぞれ固有の命令コードの形式で、リーダライタ装置
からICカードへと伝達される。ICカード内のCPU
は、与えられた命令コードに基づいて、ROM内の所定
のルーチンを実行することになる。
常、ICカードに対して与える命令は数十種類ほどあ
り、ROM内には、これら各命令ごとに別個の処理ルー
チンが用意されている。ところが、ICカードのような
携帯型の情報記録媒体は、小型化する必要性から、メモ
リの容量には制限があり、ROM内に用意するプログラ
ムはできるだけ省容量化することが好ましい。
を実行するためのプログラムサイズをより低減すること
のできるCPUを内蔵した情報記録媒体を提供すること
を目的とする。
令コードのそれぞれに対応した所定の仕事を実行するC
PUを内蔵した情報記録媒体において、各仕事に共通し
た共通処理と、各仕事ごとに別々な固有処理と、を独立
して記述したプログラムを用意し、固有処理を実行する
ときには、与えられた命令コードに基づいて所定の固有
処理への分岐を行うようにしたものである。
明に係る情報記録媒体において、複数の命令コードにつ
いて連続した番号からなる命令番号を対応づけるテーブ
ルを用意し、外部から命令コードが与えられたときに、
このテーブルを参照することにより対応する命令番号を
求め、この命令番号を一時記憶しておき、この記憶した
命令番号によって分岐を行うようにしたものである。
明に係る情報記録媒体において、命令番号に関するイン
クリメント処理もしくはデクリメント処理を行った回数
に基づいて分岐先の決定を行うようにしたものである。
明に係る情報記録媒体において、複数の命令コードにつ
いて、使用頻度順に命令番号を付すようにしたものであ
る。
チン内には、共通した処理を行う部分が存在する。本発
明では、この共通した処理の部分を共通処理のルーチン
として抜き出し、この共通処理ルーチンを、複数の命令
の実行において共通して利用できるようにしている。こ
のため、全プログラム容量を低減することができる。ま
た、各命令について固有の処理ルーチンを実行する場合
の分岐は、一時的に記憶された命令番号に基づいて行わ
れるため、効率的な分岐が可能になる。
明する。図1は一般的なICカード10をリーダライタ
装置20に接続した状態を示すブロック図である。IC
カード10内には、リーダライタ装置20と接続するた
めのI/O装置11と、CPU12と、RAM13と、
ROM14と、EEPROM15と、が内蔵されてい
る。CPU12は、I/O装置11を介してリーダライ
タ装置20から与えられる命令を受け取り、これを実行
する。3種類のメモリのうち、RAM13は揮発性のメ
モリであって、CPU12のワークエリアとして利用さ
れる。ROM14およびEEPROM15は、いずれも
不揮発性のメモリであるが、ROM14は読出し専用で
あるのに対し、EEPROMは随時書き換えを行うこと
ができる。このため、ROM14には、CPU12に実
行させるプログラムが用意され、EEPROM15に
は、ユーザデータがファイルごとに記録される。
ード10に対して、所定の命令が与えられた場合、IC
カード10内部における従来の処理方法の手順を示す流
れ図である。まず、ステップS1において、ICカード
10に対する命令の入力が行われる。前述したように、
この命令は所定の命令コード(たとえば、1バイトのコ
ード)としてCPU12に与えられることになる。CP
U12は、ステップS2において、この命令コードに対
応する仕事を行うための処理ルーチンへ分岐を行う。そ
して、ステップS3において、分岐先であるいずれか1
つのルーチンが実行される。図2に示す例では、合計6
種類の命令を実行するために、6種類のルーチンが用意
されているが、実際にはより多くの命令について、それ
ぞれ別個のルーチンがROM14内に用意されることに
なる。このように、1つの命令ごとに1つの独立したル
ーチンを用意した場合、これらのルーチンを保存するた
めにROM14内のかなりの容量が占有されることにな
る。
した処理内容を含んでいるという点に着目し、この共通
処理の部分については、共通の処理ルーチンを用意する
ようにしたものである。たとえば、図2に示した6つの
ルーチン1〜6が、それぞれ図3に示すような5つの処
理を含んでいた場合を考える。そして、処理A1〜A6
は、ほぼ同じ内容の処理であるために、共通処理Aとし
てまとめることができ、同様に、処理C1〜C6も共通
処理Cとしてまとめることができ、処理E1〜E6も共
通処理Eとしてまとめることができる理想的な場合をモ
デルとして考える。通常、6つのルーチン1〜6は、そ
れぞれ別個独立して作成されるため、たとえば、6つの
処理A1〜A6が、プログラムの記述として完全に一致
することは希である。しかしながら、これらの処理が、
ほぼ同じ内容を意図する処理であれば、6つの処理A1
〜A6について汎用できる共通処理Aを記述することは
可能である。この共通処理Aのためのプログラム容量
は、1つの処理A1のためのプログラム容量よりも増え
るかもしれないが、6つの処理A1〜A6の合計プログ
ラム容量よりは減るものと考えられる。そこで、共通処
理A,C,Eを用意し、それぞれを、処理A1〜A6,
処理C1〜C6,処理E1〜E6の代わりに用いれば、
全体のプログラム容量を低減させることができる。
Cカード10内で行われる具体的な処理方法の手順を示
す流れ図である。まず、ステップS10において、IC
カード10に対する命令の入力が行われる。ICカード
10は、入力された命令が6つの命令のいずれであって
も、ステップS11における共通処理Aを実行する。こ
の共通処理Aが完了すると、続くステップS12におい
て分岐が行われる。入力された命令が6つの命令のいず
れかであるかによって、6つの固有処理のうちのいずれ
かに分岐するのである。こうして、ステップS13で
は、6つの固有処理B1〜B6のうちのいずれかが実行
される。続くステップS14で、共通処理Cが実行され
た後、ステップS15において分岐が行われる。すなわ
ち、ステップS16で、6つの固有処理D1〜D6のう
ちのいずれかが実行される。そして最後に、ステップS
17において、共通処理Eが実行される。このような手
順を行えば、いずれの命令についても、図3に示す処理
と等価な処理が実施されることになる。
S15に示されているように、共通処理から各固有処理
へと移行する際に、分岐を行う必要がある。本発明で
は、この分岐を次のような方法により効率的に行ってい
る。まず、ROM14内に、図5に示すような命令番号
テーブルと、図6に示すようなアドレステーブルを用意
しておく。命令番号テーブルは、6つの命令それぞれに
ついての命令コード(1バイトのコード)に対して、連
続した番号「1〜6」からなる命令番号を対応づけるテ
ーブルである。図5に示す例では、たとえば、命令コー
ド「A6」は、命令番号「1」に対応づけられている。
一方、アドレステーブルは、各命令番号に対して、分岐
先となる固有処理の先頭アドレスを対応づけるテーブル
である。たとえば、図5のテーブルに示す6つの命令コ
ード「A6」,「B4」,…,「2A」が、それぞれ固
有処理B1〜B6に分岐すべき命令であった場合には、
図6のテーブルに示されているように、アドレステーブ
ルには、命令番号1〜6に対応して、それぞれ固有処理
B1〜B6の先頭アドレス値が記録されることになる。
なお、実際のアドレステーブルとしては、アドレス値だ
けを記録しておけば十分であり、命令番号そのものを記
録しておく必要はない。図6に示すテーブルは、ステッ
プS12における分岐に関してのものであり、ステップ
S15における分岐に関しても、固有処理D1〜D6の
先頭アドレス値を記録した同様のアドレステーブルが用
意される。
ステーブルを用意しておくことにより、次のような効率
的な分岐処理が可能になる。ここでは、命令コード「E
2」が与えられた場合を例にとって、この分岐処理を説
明する。まず、ステップS10において、命令の入力が
行われると、CPU12は、与えられた命令コード「E
2」に対応する命令番号を、図5に示す命令番号テーブ
ルを検索して認識する。この例の場合、命令コード「E
2」に対応する命令番号「3」が得られる。この命令番
号「3」は、RAM13の所定領域に一時的に書き込ま
れる。続いて、ステップS11の共通処理Aが行われた
後、ステップS12の分岐処理が行われる。まず、図6
に示すアドレステーブルの第1欄(図にアドレスAdd
1と記した位置)を所定のポインタに指示させた後、R
AM13に一時的に書き込まれている命令番号「3」を
所定のレジスタ(あるいは、RAM13の別な領域でも
よい)にロードする。そして、このレジスタの内容をデ
クリメントして、「0」になったか否かを判断する。
「0」になっていたら、そのときポインタが指示してい
るアドレステーブル欄に記録された固有処理の先頭アド
レス値を読み取り、この先頭アドレスからのルーチンに
ジャンプする。「0」になっていなければ、ポインタを
次の欄に移動させ(第1欄から第2欄に移動させる)、
再びレジスタの内容をデクリメントして「0」になった
か否かを判断する。このような処理を繰り返せば、レジ
スタが「0」になった時点で、正しい固有処理ルーチン
への分岐を行うことができる。上述の例では、レジスタ
の最初の値は「3」であるから、ポインタが第3欄(図
にアドレスAdd3と記した位置)まで移動したときに
レジスタは「0」になり、固有処理B3へと分岐するこ
とになる。レジスタの内容のデクリメント処理や、レジ
スタの内容が「0」か否かの判断処理は、一般的なCP
U12が備えている基本的処理であるため、極めて効率
良く実行することができる。
処理Aのルーチンの最後に、図7に示すようなプログラ
ム(CPU12が、特定のレジスタに対するロード命
令、インクリメント命令(INC)、比較命令(CM
P)、比較結果に基づくジャンプ命令(JMP)を実行
する機能をもっているという想定におけるプログラム)
を追加する方法を採ってもよい。まず、ステップにお
いて、RAM13に一時的に書き込まれている命令番号
「3」をレジスタR0にロードする。そして、ステップ
において、レジスタR1に初期値「0」をロードす
る。ステップでは、レジスタR1の内容をインクリメ
ントし、ステップでは、両レジスタの内容を比較す
る。そして、両レジスタの内容が一致した場合には、ス
テップにおいて、固有処理B1の先頭アドレスへジャ
ンプする。不一致の場合は、ステップでレジスタR1
の内容をインクリメントし、ステップで、両レジスタ
の内容を比較する。両者が一致したら、ステップにお
いて、固有処理B2の先頭アドレスへジャンプする。不
一致の場合は、ステップでレジスタR1の内容をイン
クリメントする。以下、同様に、レジスタR1のインク
リメント、両レジスタの比較、一致したらジャンプ、と
いうステップを繰り返せばよい。レジスタの内容のイン
クリメント処理や、レジスタ同士の比較判断処理は、一
般的なCPU12が備えている基本的処理であるため、
このような分岐処理も極めて効率良く実行することがで
きる。
させるためには、図5に示す命令番号テーブルにおい
て、各命令コードに対して使用頻度順に命令番号を付す
ようにするのが好ましい。図5の例では、命令コード
「A6」が最も使用頻度の高い命令であり、以下、命令
コード「B4」,「E2」,「58」,「85」,「2
A」の順に続くようになっていればよい。上述したデク
リメント処理あるいはインクリメント処理を利用した分
岐処理は、命令番号が若いほど、デクリメントあるいは
インクリメントの回数が少なくなり、処理時間が短くな
る。したがって、使用頻度順に命令番号を付すようにす
れば、使用頻度の高い命令ほど、分岐にかかる処理時間
が短くなり効率的である。
説明したが、本発明はこの実施例のみに限定されるもの
ではなく、この他にも種々の態様で実施可能である。た
とえば、上述の実施例は、ICカードに本発明を適用し
た例であるが、本発明は、CPUを内蔵した情報記録媒
体に広く適用可能である。また、図4に示した例は、6
つのルーチンのいずれもが、共通処理A,C,Eを有す
るという理想的なモデルであるが、実際には、たとえば
ルーチン1,2は処理Aを共通とし、ルーチン2,3は
処理Cを共通とする、というように、共通部分が複数の
ルーチン間で複雑に入り混じっていることが多いものと
思われる。このような場合であっても、共通する処理部
分を有するいくつかのルーチン同士について、その部分
を共通処理として一本化すればよい。要するに、本発明
の基本思想は、複数のルーチン間で処理が共通する部分
が存在した場合に、これを共通の処理ルーチンとしてま
とめるという点にあり、この基本思想から逸脱しない限
り、どのような適用を行ってもかまわない。
によれば、複数の命令についての共通処理ルーチンを共
通して利用するようにしたため、全プログラム容量を低
減することができる。また、各命令コードに対して使用
頻度順に命令番号を付すようにしたため、命令実行時に
命令番号テーブルを参照する時間が短縮され、処理の高
速化が図れる。
0に接続した状態を示すブロック図である。
20から、所定の命令が与えられた場合、ICカード1
0内部における従来の処理方法の手順を示す流れ図であ
る。
を示す図である。
20から、所定の命令が与えられた場合、ICカード1
0内部における本発明の処理方法の手順を示す流れ図で
ある。
テーブルの一例を示す図である。
テーブルの一例を示す図である。
ムルーチンの一例を示す図である。
Claims (4)
- 【請求項1】 外部から与えられる複数の命令コードの
それぞれに対応した所定の仕事を実行するCPUを内蔵
した情報記録媒体において、 各仕事に共通した共通処理と、各仕事ごとに別々な固有
処理と、を独立して記述したプログラムを用意し、前記
固有処理を実行するときには、与えられた命令コードに
基づいて所定の固有処理への分岐を行うようにしたこと
を特徴とするCPUを内蔵した情報記録媒体。 - 【請求項2】 請求項1に記載の情報記録媒体におい
て、複数の命令コードについて連続した番号からなる命
令番号を対応づけるテーブルを用意し、外部から命令コ
ードが与えられたときに、このテーブルを参照すること
により対応する命令番号を求め、この命令番号を一時記
憶しておき、この記憶した命令番号によって所定の固有
処理への分岐を行うようにしたことを特徴とするCPU
を内蔵した情報記録媒体。 - 【請求項3】 請求項2に記載の情報記録媒体におい
て、命令番号に関するインクリメント処理もしくはデク
リメント処理を行った回数に基づいて分岐先の決定を行
うことを特徴とするCPUを内蔵した情報記録媒体。 - 【請求項4】 請求項2に記載の情報記録媒体におい
て、複数の命令コードについて、使用頻度順に命令番号
を付すようにしたことを特徴とするCPUを内蔵した情
報記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08933093A JP3231467B2 (ja) | 1993-03-24 | 1993-03-24 | Cpuを内蔵した情報記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP08933093A JP3231467B2 (ja) | 1993-03-24 | 1993-03-24 | Cpuを内蔵した情報記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06282700A true JPH06282700A (ja) | 1994-10-07 |
JP3231467B2 JP3231467B2 (ja) | 2001-11-19 |
Family
ID=13967677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP08933093A Expired - Lifetime JP3231467B2 (ja) | 1993-03-24 | 1993-03-24 | Cpuを内蔵した情報記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3231467B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002501269A (ja) * | 1998-01-22 | 2002-01-15 | モンデックス インターナショナル リミテッド | コードレット |
JP2003030609A (ja) * | 2001-07-12 | 2003-01-31 | Dainippon Printing Co Ltd | 携帯型情報処理装置 |
JP2005516317A (ja) * | 2002-02-01 | 2005-06-02 | アクサルト ソシエテ アノニム | メモリ内の符号化データの更新管理 |
JP2016120552A (ja) * | 2014-12-24 | 2016-07-07 | 株式会社アイエイアイ | プログラム、及び、ソフトウェアの生成方法 |
JP2019159799A (ja) * | 2018-03-13 | 2019-09-19 | 大日本印刷株式会社 | 電子情報記憶媒体及びicカード |
-
1993
- 1993-03-24 JP JP08933093A patent/JP3231467B2/ja not_active Expired - Lifetime
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002501269A (ja) * | 1998-01-22 | 2002-01-15 | モンデックス インターナショナル リミテッド | コードレット |
JP2003030609A (ja) * | 2001-07-12 | 2003-01-31 | Dainippon Printing Co Ltd | 携帯型情報処理装置 |
JP2005516317A (ja) * | 2002-02-01 | 2005-06-02 | アクサルト ソシエテ アノニム | メモリ内の符号化データの更新管理 |
JP4723187B2 (ja) * | 2002-02-01 | 2011-07-13 | ゲマルト ソシエテ アノニム | メモリ内の符号化データの更新管理 |
JP2016120552A (ja) * | 2014-12-24 | 2016-07-07 | 株式会社アイエイアイ | プログラム、及び、ソフトウェアの生成方法 |
JP2019159799A (ja) * | 2018-03-13 | 2019-09-19 | 大日本印刷株式会社 | 電子情報記憶媒体及びicカード |
Also Published As
Publication number | Publication date |
---|---|
JP3231467B2 (ja) | 2001-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR950007895B1 (ko) | 휴대가능전자장치 | |
RU2000132719A (ru) | Смешанный файл векторных/скалярных регистров | |
US6286757B1 (en) | Portable electronic apparatus | |
JPH06282700A (ja) | Cpuを内蔵した情報記録媒体 | |
US5519860A (en) | Central processor index sort followed by direct record sort and write by an intelligent control unit | |
JPS6122817B2 (ja) | ||
JPH02103630A (ja) | データ処理装置 | |
EP0240606A2 (en) | Pipe-line processing system and microprocessor using the system | |
US5542079A (en) | Data driven processor for reading data from storage to apply prescribed operation in response to operation updating instruction and updating the contents of the storage | |
JPH0935019A (ja) | 携帯可能情報記録媒体およびそのアクセス方法 | |
JP3512252B2 (ja) | Cpuを内蔵した情報記録媒体 | |
JP4747450B2 (ja) | 携帯型情報処理装置 | |
EP0012242A1 (en) | Digital data processor for word and character oriented processing | |
US6886159B2 (en) | Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus | |
JP4059452B2 (ja) | Icカード | |
JPH0855204A (ja) | Cpu付きicカード及びcpu付きicカードに於けるアクセス可能アドレス制限方法 | |
JPS5947645A (ja) | ロ−デイング方式 | |
JPS61199126A (ja) | マイクロプログラムチエツク方式 | |
JPH02236754A (ja) | 情報処理装置 | |
JP4071377B2 (ja) | Icカード | |
JPH07210642A (ja) | Icカード | |
JPH04152488A (ja) | Icカード | |
JPH02165358A (ja) | 学習機能付きプログラムロード方式 | |
JPH06222965A (ja) | 循環順編成ファイルの管理方法 | |
JP2000057060A (ja) | 記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080914 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090914 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090914 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100914 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110914 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110914 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120914 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120914 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130914 Year of fee payment: 12 |