Mercurial > hg > Members > anatofuz > slides
annotate slides/2018/04/05/memo.txt @ 24:9e4ebb0c92bb
auto-Update generated slides by script
author | Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 05 Apr 2018 19:23:55 +0900 |
parents | 7143a82401fa |
children |
rev | line source |
---|---|
22 | 1 - x86の歴史 |
2 - corei7から64bit modeに変更された | |
3 - 8086 16bit --> 8086 | |
4 == z84 <- z8000 | |
5 - 4004 | |
6 | |
7 - CPUは起動すると16bit(8086)が起動する->32->64の順で立ち上がっていく | |
8 - 8086で動くものはある程度8086でも動く | |
9 | |
10 その変換はどこでする? EFIあたりで処理をしても良い | |
11 | |
12 - Segment Register と Addr Resgisterを使う | |
13 | |
14 - Segment Registerは CD,DS,EC,GS,SSの種類があるが、歴史的な理由でUNIXではシステム用とユーザー用の2種類しか使わない | |
15 - CSはスレッドでも利用する。 | |
16 | |
17 rax | |
18 rbx | |
19 rcx | |
20 rdp | |
21 rip | |
22 rsp | |
23 | |
24 これにr8~r15が追加される | |
25 | |
26 Logical -> Phiの変換表はTLB(キャッシュ)に入る為、キャシュの内部の処理を見ながらアクセスする | |
27 Logical + offsetの加算値をTLBで比較して、一致していればアドレスを取得する用になっている | |
28 | |
29 CPUから外の空間にアクセスする時はメモリコントローラの命令として処理される。 | |
30 | |
31 データの読み込みはキャッシュのinvalidが担当、コードの書き換え(OSロード時)はキャッシュのrehashが必要となる。 | |
32 TLBのクリアは特権命令, user側はTLBミスは管理していない. cache crea,pre fetchは用意されている。 | |
33 | |
34 [リバースページテーブル](https://www.ibm.com/developerworks/jp/linux/library/l-memmod/index.html) | |
35 invarse pagetable | |
36 | |
37 xv6は2段のページテーブルで構築されているはず | |
38 | |
39 [jxxx|yyyyy| ]からそれぞれ2つページテーブルにアクセスしている | |
40 | |
41 デバイスドライバ/filesystemなどを読む必要があります | |
42 | |
43 ページテーブル ==> 単なるメモリ空間なので、ポインタ演算で実装されていた。 | |
44 物理と論理で同じ区域を確保する | |
45 | |
46 - build build時のもの | |
47 - device timer割り込み処理を計算していく | |
48 - usr | |
49 clock signal などのregisterを管理している | |
50 | |
51 - buf.h | |
52 ras piが持っているファームウエアの記述 | |
53 mkfs | |
54 - ファイルシステム作るやつ | |
55 memide | |
56 - ディスコントロラーをmemoryにmappingする | |
57 spinlock | |
58 - multiprocessorを管理する奴 | |
59 swtch.S | |
60 | |
61 vim | |
24
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
62 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
63 arm-linux-gnu-build |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
64 - U..undefined (別のオブジェクトファイルで定義されているもの) |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
65 - T. text(テキスト,このオブジェクトで定義されているもの) |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
66 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
67 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
68 sys callがよばれる->別のメモリに入るまでにはoffsetが入る |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
69 32 bit |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
70 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
71 link register 戻り値 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
72 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
73 STMIALT 0クリア |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
74 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
75 B. この命令があるブランチを指す(無限ループ) |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
76 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
77 jump_stack CbCで書ける(stackは自前 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
78 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
79 UART bit列が並んだメモリ電線 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
80 シフトレジスタ |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
81 -> レジスタの中を1bitずらすもの |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
82 -> 任意のものはvalia |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
83 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
84 メモリの流れでpagetableのどこを引いていくかを決定する(pde) |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
85 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
86 INIT_KAERNMAP カーネルのサイズ |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
87 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
88 pdeはフラグが入る定数 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
89 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
90 デバイスの場合はキャッシュすると困るため、ページテーブルのモードで判断をする |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
91 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
92 memolayout.hのv2p kernel modeではuserも見えているが,userはkernelは見えない. |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
93 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
94 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
95 bhi unsignedで比較する |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
96 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
97 stack pointerの値 = lr+r1をいれた後の保存領域を局種変数として利用している |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
98 (caller arg) |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
99 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
100 r11からマイ->局所変数,+だと呼び出している元の変数 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
101 X86はdisable |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
102 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
103 loadでbinaryを持ってきた場合 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
104 bx リンクレジスタの先にジャンプする |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
105 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
106 clear |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
107 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
108 kman{ |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
109 最初のページはキャッシュにいれておく |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
110 |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
111 ide ( memory block device --> disc controller ) |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
112 sti() <- 割り込みを許可する |
9e4ebb0c92bb
auto-Update generated slides by script
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
113 } |