忍者ブログ
RoboCup Junior Japan Rescue Kanto OB

             2005~2013
[575]  [574]  [573]  [572]  [571]  [570]  [569]  [568]  [567]  [566]  [565
今回は前々から告知していた「レジスタ」というものについてお話しします。

レジスタとは、パソコンのプロセッサ、つまり中のCPUだとかDSPだとか、

そういった処理装置が持つ所謂小さなメモリのようなものです。


通常コンピューターは実際に処理を行なっている部分とデータを保存している部分はそれぞれ独立していて、

片方をCPUだとか言って、もう片方をメモリだとか言ったりしますよね。

コンピューターは通常、このようにデータの保存場所とデータで処理を行う場所が分かれているので、

いちいち何かする度にメモリとCPU間でデータの通信を行う必要があります。

でもそれだと、通信の時間分、処理速度が遅くなってしまいますので性能としては残念なコンピューターが出来上がる訳です。

だからといって、CPUとメモリを一緒にしてしまうと、それはそれで勝手が悪くなるし、何より汎用性が低下してしまいます。

だったら、データの中でも常に使われてデータ総量も少ないもの、

例えば一番簡素な「命令」のデータなどはCPUと一緒でいいんじゃないか?ということになりまして、


そこで考えだされたのがレジスタです。

レジスタというのは、CPUに内蔵されている高速メモリだと考えて頂ければわかりやすいと思います。

よく使われる命令などのデータに関してはCPUに直接保存することで、通信の量を抑え、処理を高速化しているのです。


まぁレジスタってのはそんなものです。逆に言うと、レジスタのデータ自体が一つの命令として意味を持っているので

レジスタ自体を直接書き換えてしまえば、一番早く、的確にCPUに命令を送ることが出来るという訳です。

この仕組みはマイコンであるPICも変わりませんから、今まで何度も「レジスタを書き換える」という話が出てきたのです。


レジスタのデータは基本的にbit単位で構成されていて、

8bitCPUなら8bit、16bitCPUなら16bitでひとつのレジスタは構成されています。

このレジスタのbitの中身、つまり0、1を変えてやることでレジスタの中身は書き換えられます。

基本的に一つのレジスタの中にはいくつかの命令が組み込まれていて、

レジスタ内の0,1を変えることでレジスタ内の命令の全てを同時に変更することもできたりします。


また、レジスタは書き込むだけではなくて、読み込むこともでき、

指定しているレジスタのbitが書き込みオンリー(W)なのか、読み込みオンリー(R)なのか

読み書きどっちも行えるのか(R/W)というのも重要な点です。

特に(R/W)のレジスタは、思いもよらない様な使い道を見つける場合も多々ありますので要チェックですね。



と、まぁこれでレジスタの説明は以上です。

と言っても文章だけなのでちょっとわかりにくいですよね。

PIC Cだとレジスタ一つ一つに名前がついていて、変数と同じような感覚で(R/W)が行えます。

先程の記事で記載したプログラムでも大量にレジスタの書き込みは行なっているので

こっちのプログラムからレジスタを探してみると、大体の感じはわかって頂けるのではないでしょうか。

このプログラムだと、直接レジスタを操作する命令はint mainの中にしかありませんが、

その中だと、見た感じ9割近くそれに該当するような・・・。


HITECでプログラムを書くと本当にレジスタだらけになってきてしまいますので、

PIC、特にHITECでプログラムを書く場合はこのレジスタの理解が大事であるということが解って頂ければと思います。


という訳で今回の記事はこのへんで。


(^・ω・)ノ RadiumProduction in RoboCup Junior

Comments
※コメントは内容確認後に手動で公開するようにしております。反映までしばらくお待ちください。
Your Name
Title
color
URL
Comment
 

カレンダー
06 2017/07 08
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 22
23 24 25 26 27 28 29
30 31
最新CM
[09/25 ONE RoboCuper]
[11/19 big]
[11/11 お馬さん]
[08/08 うまごやぐらし!]
[04/20 匿名(にさせてw]
かうんた
らじぷろ目次
らじぷろ検索機
プロフィール
HN:
Luz
年齢:
23
性別:
男性
誕生日:
1994/02/15
職業:
大学生
趣味:
ラボ畜
自己紹介:
初めまして。Luzと申します。
某大学の情報学科に入りました。のんびりと生活を送るのが今年の夢です。
めーる
radiumproduction☆yahoo.co.jp
※☆を@に変更して下さい。
バーコード

PR

忍者ブログ 2007-2017,Powered by Radium-Luz-Lα+-Rescatar in RadiumProduction [PR]


Related Posts Plugin for WordPress, Blogger...