PCDVD數位科技討論區
PCDVD數位科技討論區   註冊 常見問題 標記討論區為已讀

回到   PCDVD數位科技討論區 > 其他群組 > 七嘴八舌異言堂
帳戶
密碼
 

  回應
 
主題工具
darkangel
Major Member
 
darkangel的大頭照
 

加入日期: Aug 2001
文章: 211
引用:
作者jamin
真是奇怪的特性

不過, 這些應該在 bootloader 就會做的事, 在 linux 做不是很奇怪嗎?


anomaly 大大說的應該沒錯, 從 boot loader 到 linux kernel 的 code 我有 trace 過, 照程式碼來看, linux kernel 本身應該就可以直接跑不需要 boot loader.
我剛突然想到, 搞不好現在 ARM pipeline 不止 5 stages(anomaly 大大提到的那五個), 查了一下 wiki 果然 ARM11 有 8 stages pipeline!
所以一開始連跑 8 nop, 應該是要確定 pipeline 的狀態無誤!

我一直還以為現在最多只有 5 stages pipeline... 所以才一直不清楚為什麼要跑八次, 這樣看起來應該是誤會.

http://en.wikipedia.org/wiki/ARM11
http://en.wikipedia.org/wiki/ARM9

非常謝謝各位高手!

     
      
__________________
滿招損 謙受益
舊 2011-08-02, 01:13 AM #11
回應時引用此文章
darkangel離線中  
darkangel
Major Member
 
darkangel的大頭照
 

加入日期: Aug 2001
文章: 211
引用:
作者latw
小弟淺見...
一般來說在linux kernel被載入之前會有boot loader.
boot loader將linux載入後會call linux的start function.
但是這個start function未必是0x00的地方, 但是這個位置應該是由linker來決定....
--
基本上當載入linux kernel已經算是非常後期...對崁入式系統來說....
都有stack可用, 表是基本的相關硬體都已經弄好了.
而且就連最夯的u-boot大部分也都是用C在寫, 組合語言佔的比例真的很少很少了


以 ARM 來說, boot loader 是以跳到 kernel 的第一個 byte 把控制權移交的, 配置 C runtime environment 的部份還是 linux kernel boot 前面那段 asm 做掉的.
 
__________________
滿招損 謙受益
舊 2011-08-02, 01:25 AM #12
回應時引用此文章
darkangel離線中  
nawtequalizer
*停權中*
 

加入日期: Feb 2005
文章: 358
引用:
作者darkangel
anomaly 大大說的應該沒錯, 從 boot loader 到 linux kernel 的 code 我有 trace 過, 照程式碼來看, linux kernel 本身應該就可以直接跑不需要 boot loader.
我剛突然想到, 搞不好現在 ARM pipeline 不止 5 stages(anomaly 大大提到的那五個), 查了一下 wiki 果然 ARM11 有 8 stages pipeline!
所以一開始連跑 8 nop, 應該是要確定 pipeline 的狀態無誤!

我一直還以為現在最多只有 5 stages pipeline... 所以才一直不清楚為什麼要跑八次, 這樣看起來應該是誤會.

http://en.wikipedia.org/wiki/ARM11
http://en.wikipedia.org/wiki/ARM9

非常謝謝各位高手!


長知識了,
也謝謝你提出問題。
舊 2011-08-02, 04:01 AM #13
回應時引用此文章
nawtequalizer離線中  
passerx
*停權中*
 

加入日期: Feb 2005
文章: 164
程式碼不是有寫註解,

"sort out different calling conventions"

這跟ABI有關,細節要去翻ABI的定義.
舊 2011-08-02, 06:10 AM #14
回應時引用此文章
passerx離線中  
kiten
*停權中*
 
kiten的大頭照
 

加入日期: Apr 2005
文章: 17
引用:
作者darkangel
anomaly 大大說的應該沒錯, 從 boot loader 到 linux kernel 的 code 我有 trace 過, 照程式碼來看, linux kernel 本身應該就可以直接跑不需要 boot loader.
我剛突然想到, 搞不好現在 ARM pipeline 不止 5 stages(anomaly 大大提到的那五個), 查了一下 wiki 果然 ARM11 有 8 stages pipeline!
所以一開始連跑 8 nop, 應該是要確定 pipeline 的狀態無誤!

我一直還以為現在最多只有 5 stages pipeline... 所以才一直不清楚為什麼要跑八次, 這樣看起來應該是誤會.

http://en.wikipedia.org/wiki/ARM11
http://en.wikipedia.org/wiki/ARM9

非常謝謝各位高手!


ARM架構除了嵌入式系統,平板電腦,手持裝置.....外
桌機,筆電,伺服器會出頭嗎??
我是連x86系列的assembly都搞不出名堂的咖
看到板上ARM討論這麼熱烈,驚駭莫名
舊 2011-08-02, 07:51 AM #15
回應時引用此文章
kiten離線中  
yctsai88
Major Member
 

加入日期: Apr 2002
文章: 105
引用:
作者kiten
ARM架構除了嵌入式系統,平板電腦,手持裝置.....外
桌機,筆電,伺服器會出頭嗎??
我是連x86系列的assembly都搞不出名堂的咖
看到板上ARM討論這麼熱烈,驚駭莫名


Cortex A8, A9應該還沒辦法打入目前Intel掌控的範圍
不過Cortex A15應該有機會 尤其是在每瓦效能上 ARM是大幅領先
舊 2011-08-02, 08:31 AM #16
回應時引用此文章
yctsai88離線中  
passerx
*停權中*
 

加入日期: Feb 2005
文章: 164
引用:
作者darkangel
.......
所以一開始連跑 8 nop, 應該是要確定 pipeline 的狀態無誤!
........



要清掉pipeline只要一個jump就夠了.
舊 2011-08-02, 08:41 AM #17
回應時引用此文章
passerx離線中  
darkangel
Major Member
 
darkangel的大頭照
 

加入日期: Aug 2001
文章: 211
引用:
作者passerx
程式碼不是有寫註解,

"sort out different calling conventions"

這跟ABI有關,細節要去翻ABI的定義.


就是有那個註解我才會疑惑, 所以一開始我也是認定為保留用.
但是網友大都頃向為可能是 pipeline 的機制, 我才去查 ARM 現在的 pipeline.
我還是不能理解, 一開機時 GOT 都還沒配置, 會跟 ABI 有啥關係?
請高手指點.
__________________
滿招損 謙受益
舊 2011-08-02, 10:02 AM #18
回應時引用此文章
darkangel離線中  
latw
Junior Member
 
latw的大頭照
 

加入日期: Jul 2002
文章: 772
引用:
作者darkangel
就是有那個註解我才會疑惑, 所以一開始我也是認定為保留用.
但是網友大都頃向為可能是 pipeline 的機制, 我才去查 ARM 現在的 pipeline.
我還是不能理解, 一開機時 GOT 都還沒配置, 會跟 ABI 有啥關係?
請高手指點.

根據室友不可靠說法..
若boot loader只有把linux kernel載入的話,那應該是清pipleine.
有些CPU需要幾個nop指令去清除.
舊 2011-08-02, 10:07 AM #19
回應時引用此文章
latw離線中  
anomaly
Advance Member
 

加入日期: Feb 2003
文章: 406
引用:
作者passerx
要清掉pipeline只要一個jump就夠了.


能夠避開CPU內部的Hazard都是好方法

http://en.wikipedia.org/wiki/Hazard_(computer_architecture)
舊 2011-08-02, 10:14 AM #20
回應時引用此文章
anomaly離線中  


    回應


POPIN
主題工具

發表文章規則
不可以發起新主題
不可以回應主題
不可以上傳附加檔案
不可以編輯您的文章

vB 代碼打開
[IMG]代碼打開
HTML代碼關閉



所有的時間均為GMT +8。 現在的時間是07:06 PM.


vBulletin Version 3.0.1
powered_by_vbulletin 2025。