Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 5119|回復: 19
打印 上一主題 下一主題

微代码和汇编语言的区别

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-3-24 06:18:59 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我是写微代码的,当我告诉朋友我的职业的时候,他显得很迷惑。他觉得微代码就是汇编,两者没有区别。其实,两者之间有着本质的区别。
- q4 s! s' R9 F* V/ I$ q4 _
3 o" Z" Z/ W! x: u. J的确,微代码和汇编都是低级语言,但是微代码比汇编更底层。微代码和汇编都和硬件有着紧密的联系,但是对于同一产品系列的不同代产品来说,汇编可以完全相同,微代码可能有着巨大的区别,因为微代码是完全依赖于芯片内部的硬件连接。4 o# d; D9 {' O' b3 M2 N2 _

& \- }" S9 R+ K3 O# M; t% u- y* }, U8 ]对于同样一句C语言,在不同的处理器上会生成不同的汇编语言。每一条汇编语言的执行时间也许是一个或者两个时钟周期,甚至更多。微代码和汇编的关系,就像C与汇编的关系,也就是说一条汇编也许会生成一条或多条微代码。所谓微代码,或者微指令,是处理器内部最小的操作原语,控制着诸如门电路(gates)开关等专门动作,和组成一条指令的微操作的序列。例如,对于一个加法"ADD"的简单动作,微代码可以决定接受哪两个寄存器或总线为输入,输出到什么总线或者寄存器里,标志寄存器要保存还是丢弃,根据条件进行跳转或者直接执行下一条微代码。一个内部只有8位宽的数据总线完全可以支持32位整数的汇编指令,就是因为有微代码。
5 @0 E5 L) W3 ~6 i& b& |4 W' u* g) `
遊客,如果您要查看本帖隱藏內容請回復

評分

參與人數 1Chipcoin +3 收起 理由
chip123 + 3 交流分享心得!心得分享交流!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2007-3-24 12:58:17 | 只看該作者
嗯, 介紹的很清楚.6 A, T/ ^; U, [# O0 m4 O' V
你是我遇到第一個寫micro code的. 一般的人頂多寫assembly code而已., y( Q7 Z* B0 k5 u

- `" I5 W- \# ?  S. P請問一下, 如果想寫micro code的話, 要去哪找資料呢? 很多資料都是商業機密, 那是否意謂著一般的人就沒機會接觸micro code了.
3#
 樓主| 發表於 2007-3-26 15:51:00 | 只看該作者
是的,資料很機密,而且不同芯片的微代碼是完全不一樣的。但是,我想隻要妳做過一款就會有經營,原理上應該相差不遠。
4#
發表於 2007-4-14 22:41:43 | 只看該作者
微代瑪或微指令有學過計算機組織的應該都懂得它的運作) @( p" A1 [4 [/ @% G2 d
我想應該是設計CPU架構的人才會有這個資料,所以說是商業機密也沒錯
- q3 W3 q; `. s' j0 ]& F這也是一種為了應付不同客戶需求的MCU的設計方式9 [5 O" s: K# o, W' a
也就是Cost-Down導向的彈性設計法
5#
發表於 2007-4-16 14:28:28 | 只看該作者
嗯...5 N& z+ L0 |; @" Q
透過micro code來控制所有的pipeline跟data path的動作以完成指令的所有動作, 做的好的話, CPU performance自然就高. 我想實作上也是要嘔心瀝血吧!
6#
 樓主| 發表於 2007-4-21 03:16:17 | 只看該作者
我想也是
+ {8 b( o" G8 O; m3 W) |9 q5 o: `" a8 q
最大的优点应该体现在频繁操作内存的指令。呵呵,不知道再讲下去会不会涉及到商业机密。
7#
發表於 2007-4-22 22:47:23 | 只看該作者
請問有無對 ARM 最佳化的經驗阿
8#
發表於 2007-4-24 16:03:40 | 只看該作者
我也來寫顆CPU給小妹寫micro-code,再找個人port uclinux如何?
9#
 樓主| 發表於 2007-4-25 15:00:19 | 只看該作者
可以啊,我们可以合作开公司啦
# P; K# j- o& y) xARM没有优化过,但是我想没有问题,只是不知道他是否也是这种WISC处理器
10#
發表於 2007-4-30 15:25:47 | 只看該作者
開公司啊...聽起來很優的感覺' m# A; E1 k' B9 G  p7 v
不過最好有人可以port GUN tool chain跟uCLinux還有一大堆的IO/ w0 y+ t$ c* c7 E- g2 i
這些人都有的話, 就真的可以開公司了...6 Q1 I  a7 A7 C; e
3 x8 a; L" }+ L9 R3 V
話說回來, 小妹真的認真的話, 等我再有空一點, 倒是可以試試看也說不定
11#
發表於 2007-5-1 15:00:45 | 只看該作者
想請問板主!micro code跟op code是不是指相同的東西?
12#
發表於 2007-5-1 17:50:25 | 只看該作者
不是哦...4 r8 x5 v: Q" E/ q, Q5 B# j
不過為了尊重專業起見, 還是讓專業的小妹來回答你好了
13#
 樓主| 發表於 2007-5-5 05:09:34 | 只看該作者
micro code也是一種編程語言,不同的是它可以精確的操縱CPU的內部動作. U4 a& e' B- J4 W* k8 Y
; R8 L6 l3 E( o% A1 I3 e' U
op code則是機器語言指令的一部分。比如說一條X86滙編語言就op code和operands的組成,也就是操作碼和操作數。而操作碼就是該條指令的二進製編碼。
14#
發表於 2007-5-7 12:26:21 | 只看該作者
再請問 windflowerz 版主:"micro code也是一種編程語言"是不是跟Assembly或是DDK,SDK類似的程式語言,既然是"編程語言"那產出應該也是二進製編碼嗎?謝謝!
15#
 樓主| 發表於 2007-5-10 04:39:30 | 只看該作者
跟汇编有点象,但是和DDK,SDK不一样,因为不存在任何函数和库,你面对的就是寄存器,ALU,乘法器,总线,标志寄存器和内存。你所要想的是如何操作这些硬件来达到你的设计用途,而不能简单地用高级语言来思考。但是生成的确实是可以执行的二进制编码,但是只能在对应的机器上运行。
16#
發表於 2007-5-10 17:57:09 | 只看該作者
再請問 windflowerz 版主:那不是有Assembly的"CPU每換一種版本就要重寫一次"的缺點,而且汇编工具只有原廠(CPU廠)才提供,沒有第二套汇编工具可以選擇?謝謝!

評分

參與人數 1Chipcoin +2 收起 理由
windflowerz + 2 問之有理!

查看全部評分

17#
 樓主| 發表於 2007-5-11 04:22:06 | 只看該作者
基本是这样,CPU每更新一种版本就要重写一次,起码我们公司的CPU是如此.因为cpu更新了,硬件也作了很多改变,甚至你的编码规则都有所改变.
  F) `' n% v; o2 E% Y; `4 l; G6 F& m* H7 m  t
因为每一款cpu都有自己独特的编码方式和硬件体系,所以必然只有原产商才有编译和调试工具。
- |7 @& L; G) D) C0 K  s# k1 x  n, x
看gsmlkk问的问题,觉得你的水平很高,懂得东西很多阿。希望在这里也可以看到你的大作和高见。
- x6 h7 \* O1 c, h
8 M% P  ^/ k7 A6 B% t* j+ Q) G5 D[ 本帖最後由 windflowerz 於 2007-5-10 09:23 PM 編輯 ]
18#
發表於 2007-5-12 01:57:36 | 只看該作者
多謝 windflowerz 版主回答!在下只是多跑了幾顆chip!不敢稱得上水平很高!
19#
 樓主| 發表於 2007-5-12 03:44:17 | 只看該作者
不要太謙虛哦,希望能和妳多交流呢
20#
發表於 2007-5-14 15:31:57 | 只看該作者
嗯...多多交流, ?* c! a2 r- h8 K/ q: z4 a* l
什麼時候gsmlkk也來交流一下下???
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-12-24 03:51 AM , Processed in 0.173010 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表