计算机体系结构:MIPS指令集 北大计算机系

合集下载

mips指令集指的是什么

mips指令集指的是什么

mips指令集指的是什么MIPS是高效精简指令集计算机(RISC)体系结构中最优雅的一种;即使连MIPS的竞争对手也这样认为,这可以从MIPS对于后来研制的新型体系结构比如DEC的Alpha和HP的Precision产生的强烈影响看出来。

虽然自身的优雅设计并不能保证在充满竞争的市场上长盛不衰,但是MIPS微处理器却经常能在处理器的每个技术发展阶段保持速度最快的同时保持设计的简洁。

MIPS与MIPS指令集指令集是存储在CPU内部,对CPU运算进行指导和优化的硬程序。

拥有这些指令集,CPU就可以更高效地运行。

MIPS指令集属于精简指令集,MIPS 的所有指令都是32位,指令格式简单,而X86的指令长度不是固定的。

简单的指令和格式易于译码和流水线操作,但是代码密度不高,导致二进制文件大。

低端的CPU物理面积只有1.5平方毫米(在SOC系统里面肉眼很难找到)。

而高端的R10000处理器,第一次投放市场时可能是世界上最快的CPU,它的物理面积几乎有1平方英寸,发热近30瓦特。

虽然MIPS看起来没什么优势,但是足够的销售量使其能健康发展:1997年面市的44M的MIPS CPU,绝大多数使用于嵌入式应用领域。

MIPS(Million InstrucTIons Per Second):单字长定点指令平均执行速度Million InstrucTIons Per Second的缩写,每秒处理的百万级的机器语言指令数。

这是衡量CPU速度的一个指标。

像是一个Intel80386 电脑可以每秒处理3百万到5百万机器语言指令,即我们可以说80386是3到5MIPS的CPU。

MIPS只是衡量CPU性能的指标。

MIPS是世界上很流行的一种RISC处理器。

MIPS的意思无内部互锁流水级的微处理器(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。

mips指令集(24条指令)的字段和功能描述

mips指令集(24条指令)的字段和功能描述

MIPS指令集(24条指令)的字段和功能描述指令集概述M I PS(M ic ro pr oc es s or wi th ou tI nt erl o ck ed Pi pe li ne dSt a ge s)指令集是一种精简指令集(R IS C)体系结构,广泛应用于计算机体系结构的教学和实践中。

本文将介绍M IP S指令集中的24条常用指令,并对它们的字段和功能进行详细描述。

加载和存储指令1.l w指令字段描述:-指令格式:lw$r t,o f fs et($rs)-r s(源寄存器):指定存储单元的基址寄存器-r t(目标寄存器):指定目标寄存器,用于存储从存储单元中加载的数据-o ff se t:用于指定存储单元的偏移量,计算出实际地址功能描述:l w指令用于从存储单元中加载数据到目标寄存器。

它通过基址寄存器和偏移量计算出实际地址,并将存储单元中的数据加载到目标寄存器中。

2.s w指令字段描述:-指令格式:sw$r t,o f fs et($rs)-r s(源寄存器):指定存储单元的基址寄存器-r t(目标寄存器):指定源寄存器,用于存储到存储单元中的数据-o ff se t:用于指定存储单元的偏移量,计算出实际地址功能描述:s w指令用于将源寄存器中的数据存储到指定的存储单元中。

它通过基址寄存器和偏移量计算出实际地址,并将源寄存器中的数据存储到该地址对应的存储单元中。

算术和逻辑指令3.a d d指令字段描述:-指令格式:ad d$rd,$rs,$rt-r s(源寄存器1):参与运算的第一个源寄存器-r t(源寄存器2):参与运算的第二个源寄存器-r d(目标寄存器):用于存储运算结果功能描述:a d d指令用于将两个源寄存器中的数据相加,并将结果存储到目标寄存器中。

4.s u b指令字段描述:-指令格式:su b$rd,$rs,$rt-r s(源寄存器1):参与运算的第一个源寄存器-r t(源寄存器2):参与运算的第二个源寄存器-r d(目标寄存器):用于存储运算结果功能描述:s u b指令用于将源寄存器2中的数据从源寄存器1中的数据减去,并将结果存储到目标寄存器中。

计算机体系结构:MIPS指令集 北大计算机系

计算机体系结构:MIPS指令集 北大计算机系
32 bits of data 32 bits of data 32 bits of data 32 bits of data
Registers hold 32 bits of data
°232 bytes with byte addresses from 0 to 232-1 °230 words with byte addresses 0, 4, 8, ... 232-4 °Words are aligned i.e., what are the least 2 significant bits of a word address?
北京大学计算机科学技术系
北京大学微处理器研究开发中心
Our First Example
°Can we figure out the code?
swap(int v[], int k); { int temp; temp = v[k] v[k] = v[k+1]; v[k+1] = temp; }
Assume:
bne $t0, $t1, Label beq $t0, $t1, Label °Example: if (i==j) h = i + j;
bne $s0, $s1, Label add $s3, $s0, $s1 Label: ....
$s1 = $s2 + $s3 $s1 = $s2 - $s3 $s1 = Memory[$s2+100] Memory[$s2+100] = $s1
北京大学计算机科学技术系
北京大学微处理器研究开发中心
Machine Language
°Instructions, like registers and words of data, are also 32 bits long • Example: add $t0, $s1, $s2 • registers have numbers, $t0=9, $s1=17, $s2=18 °Instruction Format:

MIPS体系结构介绍

MIPS体系结构介绍
Nop 寄存器移动:move 取常数:立即数(li,lui)或者地址(la) 算术逻辑指令:add/addi/addu/addiu,…,set if型指令slt,slti,sltiu,sltu 等 整数乘除:mult,multu,div,divu,mfhi,mflo,mthi,mtlo load/store: lb/lbu/lh/lhu/lw/lwu/ld/ldl/ldr/lwl/lwr/ll/lld,sb/sh/sw/sd/sdl/sdr/swl/swr/ sc/scd 跳转,函数调用和分支:相对跳转(bne,beql,blt,…)绝对跳转(j,jr), 函数调用(…and link,如jal,jalr,bal等) 断点和陷阱:break,syscall,teq,teqi,tge… Cp0指令 cfc0,ctc0;mfc0,mtc0,dmfc0,dmtc0;eret,cache,sync;tlbp,tlbr,tlbwi,tlbwr; wait,suspend; 浮点指令 cfc1/ctc1;mfc1,mtc1,dmfc1,dmtc1;mov.s/mov.d;…
0xffffffff 0xc000 0000 0xa000 0000 0x8000 0000 Unmapped uncached(kseg1) Unmapped cached(kseg0) 32-bit user space(kuseg) 2GB 0x0000 0000 mapped(kseg2)
MIPS指令集
MIPS C代码和可移植性
常见问题
– – – – – – – – – – – 需要显式的cache管理 CPU速度变化引起的时序问题 数据对齐和数据在内存的分布 尾端(字节次序) 指针的符号: kseg0/kseg1地址>2G Signed/unsigned char Int的大小 依赖于栈的程序:尽量使用stdargs/alloca等函数 参数传递和自动转换 库函数的不确定语义 头文件不兼容

【盛世清北】2021北京大学801计算机专业基础考研真题

【盛世清北】2021北京大学801计算机专业基础考研真题

【盛世清北】2021北京大学801计算机专业基础考研真题盛世清北分享:北京大学801计算机专业基础考试真题,适用北京大学以下院系+专业:北京大学地球与空间科学学院070921地质学(石油地质学)北京大学前沿交叉学科研究院0701J3数据科学(数学)北京大学前沿交叉学科研究院0714J3数据科学(统计学)北京大学前沿交叉学科研究院0812J3数据科学(计算机科学与技术)北京大学深圳研究生院081203计算机应用技术北京大学信息科学技术学院081201计算机系统结构北京大学信息科学技术学院081202计算机软件与理论北京大学信息科学技术学院081203计算机应用技术北京大学801计算机专业基础科目的考研真题为:数据结构:1.写出AVL树并计算平均查找长度。

2.n个数组成二叉树,证明排序时间复杂度为O(nlogn) (这个记忆得有点模糊)3.一个数组,有最多X个极值,设计一个时间复杂度尽可能低的算法。

、计算机体系结构:1.结合流程图阐述乘法器的工作原理,然后对其改进。

2.MIPS指令集计算机网络:一个用户通过交换机,集线器向另一个用户发送IP报文,问交换机的作用,源地址和目的地址。

北京大学801计算机基础2018年研究生入学试题关于真题使用方法,盛世清北建议这样使用:认真分析历年试题,做好总结,对于考生明确复习方向,确定复习范围和重点,做好应试准备都具有十分重要的作用。

分析试题主要应当了解以下几个方面:命题的风格(如难易程度,是注重基础知识、应用能力还是发挥能力,是否存在偏、难、怪现象等)、题型、题量、考试范围、分值分布、考试重点、考查的侧重点等。

考生可以根据这些特点,有针对性地复习和准备,并进行一些有针对性的练习,这样既可以检查自己的复习效果,发现自己的不足之处,以待改进;又可以巩固所学的知识,使之条理化、系统化。

除了真题使用方法,盛世清北还建议考生掌握学习笔记的整理方法:A:通过目录法、体系法的学习形成框架后,在仔细看书的同时应开始做笔记,笔记在刚开始的时候可能会影响看书的速度,但是随着时间的发展,会发现笔记对于整理思路和理解课本的内容都很有好处。

stanford_university_mips_组织架构_解释说明

stanford_university_mips_组织架构_解释说明

stanford university mips 组织架构解释说明1. 引言1.1 概述引言部分将介绍本文的主题——Stanford University MIPS组织架构。

MIPS (Microprocessor without Interlocked Pipeline Stages)指令集架构是一种经典的RISC(Reduced Instruction Set Computer)体系结构,由斯坦福大学开发和推广。

本文将详细解释MIPS组织架构的概念和原理,并深入讨论其指令集、寄存器、流水线技术以及优化策略。

1.2 文章结构为了更好地说明MIPS组织架构,本文将按照以下结构展开讨论:- 第2部分将简要介绍MIPS组织架构的概述,包括计算机体系结构的发展历程以及MIPS架构的特点。

- 第3部分将着重介绍MIPS指令集和寄存器,包括概述、寄存器结构和作用,以及指令格式和编码规则。

- 第4部分将深入探讨MIPS流水线技术及其优化策略,包括流水线基本概念和原理、MIPS流水线结构以及各个阶段功能介绍,以及相关问题和优化策略的讨论。

- 最后,第5部分将给出本文的结论和总结。

1.3 目的本文的目的是通过对Stanford University MIPS组织架构的详细解释,让读者了解MIPS体系结构及其特点,并探究其中涉及的指令集、寄存器、流水线技术以及优化策略。

通过文章的阅读,读者将能够更好地理解MIPS组织架构并在计算机体系结构领域有所提升。

我们希望这篇长文能够为读者提供一个全面而清晰的指南,进一步推动计算机科学领域的发展与创新。

2. MIPS组织架构:2.1 概述:MIPS(Microprocessor without Interlocked Pipeline Stages)是一种经典的RISC(Reduced Instruction Set Computer)微处理器架构。

它于1981年由斯坦福大学开发,旨在设计简单、高效的计算机体系结构。

MIPS体系结构介绍

MIPS体系结构介绍

MEM
--is the stage where the instruction can read/write memory variables in the data cache (D-cache). On average about three out of four instructions do nothing in this stage, but allocating the stage for each instruction ensures that you never get two instructions wanting the data cache at the same time.
Agenda
The MIPS Five-stage Pipeline MIPS Architecture MIPS Processor Control Exceptions Interrupts Starting up
MIPS Architecture
General-Purpose Registers Basic Address Space
kseg0: These addresses are translated into physical
addresses by merely stripping off the top bit and mapping them contiguously into the low 512MB of physical memory. Addresses in this region are almost always accessed through the cache, so they may not be used until the caches are properly initialized. They will be used for most programs and data in systems not using the MMU and will be used for the OS kernel for systems that do use the MMU.

205-MIPS体系结构[11页]

205-MIPS体系结构[11页]

本节主题M I P S 体系结构北京大学·慕课计算机组成制作人:陆俊林MIPS 的设计者和RISC 的先驱◦1977年,进入斯坦福大学任职◦1981年,领导RISC 微处理器的研究小组◦1984年,共同创立MIPS 计算机系统公司◦1989年~1999年,先后担任斯坦福大学计算机系统实验室主任、计算机系主任和工程学院院长等◦2000年起,任斯坦福大学校长约翰·亨尼西John Hennessy1953年出生IEEE Medal of Honor “for pioneering the RISC processor architecture and for leadership in computer engineering and higher education"RISC :Reduced Instruction Set Computer ,精简指令系统计算机CISC :Complex Instruction Set Computer ,复杂指令系统计算机MIPS公司的商业兴衰1984年,MIPS计算机系统公司成立1988年,SGI公司在其计算机产品中采用MIPS处理器1989年,MIPS第一次上市1992年,SGI收购MIPS,更名为MIPS技术公司1998年,MIPS再次上市2012年,Imagination Technologies收购MIPSMIPS处理器广泛应用的领域:◦数字电视、机顶盒、蓝光播放器、游戏机、网络设备等MIPS 指令的发展1985年,R2000 1990年,R30001992年,R4000扩展到64位1994年,R8000MIPS V1996年1999年以MIPS II为基础,增加了MIPSIII/IV/V的部分特性1999年以MIPS V为基础MIPS的设计指导思想MIPS的全称◦M icroprocessor without I nterlocked P iped S tages 主要关注点◦减少指令的类型◦降低指令复杂度基本原则◦A simpler CPU is a faster CPU.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北京大学微处理器研究开发中心
Registers vs. Memory
°Arithmetic instructions operands must be registers, • only 32 registers provided °Compiler associates variables with registers °What about programs with lots of variables
MIPS: Microprocessor without Interlocked Pipeline Stages
设计特色: 高效的指令流水线编译辅助的流水线调度策略
北京大学计算机科学技术系 北京大学微处理器研究开发中心
MIPS 算术指令
°设计原则: simplicity favors regularity. °所有算术指令都有 3 个操作数
Control
Memory Datapath
Processor
北京大学计算机科学技术系
Input
Output
I/O
北京大学微处理器研究开发中心
Memory Organization
° Viewed as a large, single-dimension array, with an address. ° A memory address is an index into the array
北京大学计算机科学技术系 北京大学微处理器研究开发中心
指令(Instructions):
°机器语言的字词 °比高级语言更加简单、原始 例如,没有复杂的控制流
°限制性非常强 例如:MIPS算术运算指令
将基于MIPS指令系统体系结构
• 与二十世纪八十年代后的许多结构都很类似 • 被NEC, Nintendo, Silicon Graphics, Sony等使用
北京大学计算机科学技术系
北京大学微处理器研究开发中心
Our First Example
°Can we figure out the code?
swap(int v[], int k); { int temp; temp = v[k] v[k] = v[k+1]; v[k+1] = temp; }
Assume:
8 bits of data
8 bits of data
北京大学微处理器研ion
°Bytes are nice, but most data items use larger "words"
°For MIPS, a word is 32 bits or 4 bytes. 0 4 8 12 ...
北京大学计算机科学技术系
北京大学微处理器研究开发中心
Control
°Decision making instructions • alter the control flow, • i.e., change the "next" instruction to be executed °MIPS conditional branch instructions:
k->$5 v[0]->$4
swap: muli $2, $5, 4 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31
北京大学计算机科学技术系 北京大学微处理器研究开发中心
So far we have learned:
Processor
Memory
memory for data, programs, compilers, editors, etc.
°Fetch & Execute Cycle • Instructions are fetched and put into a special register • Bits in the register "control" the subsequent actions • Fetch the next instruction and continue
bne $t0, $t1, Label beq $t0, $t1, Label °Example: if (i==j) h = i + j;
bne $s0, $s1, Label add $s3, $s0, $s1 Label: ....
°操作数的次序是固定的(目标操作数领先)
示例: C代码: MIPS代码: A = B + C add $s0, $s1, $s2 (编译器完成寄存器与变量的关联)
北京大学计算机科学技术系
北京大学微处理器研究开发中心
MIPS 算术指令
°当然也有可能让事情变复杂…… C code: A = B + C + D; E = F - A;
MIPS code: add $t0, $s1, $s2 add $s0, $t0, $s3 sub $s4, $s5, $s0 °设计原则: smaller is faster.
°Operands must be registers, only 32 registers provided
北京大学计算机科学技术系
北京大学计算机科学技术系 北京大学微处理器研究开发中心
Instructions
°Load and store instructions °Example: C code: A[8] = h + A[8];
MIPS code: lw $t0, 32($s3) add $t0, $s2, $t0 sw $t0, 32($s3) °Store word has destination last °Remember arithmetic operands are registers, not memory!
本讲概况
上讲复习 MIPS指令系统体系结构 MIPS的其他情况 其他指令系统 (PowerPC、80x86) 总结
北京大学计算机科学技术系
北京大学微处理器研究开发中心
指令系统设计
软件
指令系统
硬件
北京大学计算机科学技术系
北京大学微处理器研究开发中心
执行周期
Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Next Instruction
32 bits of data 32 bits of data 32 bits of data 32 bits of data
Registers hold 32 bits of data
°232 bytes with byte addresses from 0 to 232-1 °230 words with byte addresses 0, 4, 8, ... 232-4 °Words are aligned i.e., what are the least 2 significant bits of a word address?
° "Byte addressing" means that the index points to a byte
of memory.
0 1 2 3 4 5 6 ...
北京大学计算机科学技术系
8 bits of data 8 bits of data 8 bits of data 8 bits of data 8 bits of data
Where's the compromise?
北京大学计算机科学技术系 北京大学微处理器研究开发中心
Stored Program Concept
°Instructions are bits
°Programs are stored in memory to be read or written just like data
000000 10001 op rs
10010 rt
01000 rd
00000 shamt
100000 funct
°Can you guess what the field names stand for?
北京大学计算机科学技术系 北京大学微处理器研究开发中心
Machine Language
°Consider the load-word and store-word instructions, • What would the regularity principle have us do? • New principle: Good design demands a compromise
CPI 和程序无关,和编译有关 此处的CPI指某条指令或某类指令的CPI j
编译影响CPI的例子: • 数据相关 • lw R1, 100[R0] • add R3, R1, R2 • 控制相关 • beq R1, R2, label •… • label:
北京大学计算机科学技术系 北京大学微处理器研究开发中心
北京大学计算机科学技术系 北京大学微处理器研究开发中心
从程序存储系统中获得指令
确定所需的动作和指令大小
定位并获得操作数数据
计算结果数值或状态 在存储系统中存放结果,以备后用
确定后续指令
上讲总结: ISA
• 使用通用寄存器的load-store 结构; • 支持如下寻址方式:displacement (with an address offset size of 12 to 16 bits)、 immediate (size 8 to 16 bits), 以及 register deferred; • 支持如下简单指令(因为它们决定执行的指令总数):load、store、add、 subtract、move register-register、and、shift、compare equal、 compare not equal、 branch (with a PC-relative address at least 8-bits long)、 jump、 call, 以及return; • 支持如下数据大小和类型:8位、16位、32位整数; 以及 32位和 64位 IEEE 754 浮点数 • 如果看重性能,就使用 固定指令编码方案 如果看重代码大小,就使用 可变指令编码方案 • 提供至少16个通用寄存器,以及单独的浮点寄存器; • 确信所有的寻址方式都可以用于所有的数据传输指令; • 瞄准最低限要求的指令系统
相关文档
最新文档