diff slides/2018/04/05/memo.txt @ 22:7143a82401fa

update
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Thu, 05 Apr 2018 11:30:03 +0900
parents
children 9e4ebb0c92bb
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/slides/2018/04/05/memo.txt	Thu Apr 05 11:30:03 2018 +0900
@@ -0,0 +1,61 @@
+- x86の歴史
+    - corei7から64bit modeに変更された
+    - 8086 16bit  --> 8086 
+        == z84 <- z8000
+    - 4004
+
+- CPUは起動すると16bit(8086)が起動する->32->64の順で立ち上がっていく
+- 8086で動くものはある程度8086でも動く
+
+その変換はどこでする? EFIあたりで処理をしても良い
+
+- Segment Register と Addr Resgisterを使う
+
+    - Segment Registerは CD,DS,EC,GS,SSの種類があるが、歴史的な理由でUNIXではシステム用とユーザー用の2種類しか使わない
+    - CSはスレッドでも利用する。
+
+    rax
+    rbx
+    rcx
+    rdp
+    rip
+    rsp
+
+    これにr8~r15が追加される
+
+Logical -> Phiの変換表はTLB(キャッシュ)に入る為、キャシュの内部の処理を見ながらアクセスする
+Logical + offsetの加算値をTLBで比較して、一致していればアドレスを取得する用になっている
+
+CPUから外の空間にアクセスする時はメモリコントローラの命令として処理される。
+
+データの読み込みはキャッシュのinvalidが担当、コードの書き換え(OSロード時)はキャッシュのrehashが必要となる。
+TLBのクリアは特権命令, user側はTLBミスは管理していない. cache crea,pre fetchは用意されている。
+
+[リバースページテーブル](https://www.ibm.com/developerworks/jp/linux/library/l-memmod/index.html)
+invarse pagetable
+
+xv6は2段のページテーブルで構築されているはず
+
+[jxxx|yyyyy| ]からそれぞれ2つページテーブルにアクセスしている
+
+デバイスドライバ/filesystemなどを読む必要があります
+
+ページテーブル ==> 単なるメモリ空間なので、ポインタ演算で実装されていた。
+物理と論理で同じ区域を確保する
+
+- build build時のもの
+- device timer割り込み処理を計算していく
+- usr
+    clock signal などのregisterを管理している
+
+- buf.h
+    ras piが持っているファームウエアの記述
+mkfs
+    - ファイルシステム作るやつ
+memide
+    - ディスコントロラーをmemoryにmappingする
+spinlock 
+    - multiprocessorを管理する奴
+swtch.S
+
+vim