Pergunta

Eu sei Assembly x86 (e ter trabalhado com FPGA etc '), Nunca escrevi para um RISC, tenho a oportunidade de fazer um curso de MIPS, mas estou ocupado como é, por isso a minha pergunta é: Eu sei que cada coisa que eu aprender é benéfico de alguma forma, mas realmente, o quanto benéfico? (Eu sou um nível baixo entusiasmado, mas isso é uma obrigação?)

(Estou ciente MIPS-é-que-importante , mas eu sinto que o meu caso é um pouco diferente, como eu já sei algum tipo de Assembly)

Graças.

Foi útil?

Solução

Uma coisa interessante sobre MIPS é que você tem que gerenciar o buffer Lookaside tradução (TLB) manualmente. Você não tem que fazer isso com x86 (ou a maioria das outras normas de auditoria que eu já programados). Dessa forma, é RISCier do que o outro RISC CPUs. Um monte de equipamentos de rede e armazenamento tem incorporado CPUs MIPS. A start-up eu trabalhava em no início desta década fez um CPU MIPS 16 núcleos com aceleradores de criptografia (como dois dos co-processadores). Esse projeto foi comprada pela Juniper Networks e é usado em seus serviços adaptáveis ??PIC em seus roteadores.

Assim, como já foi dito MIPS é um exemplo muito bom de um RISC ISA, e ainda está começando a abundância de vitórias de design. Eu acho que é útil para aprender.

Eu encontrei a primeira edição do livro que se segue a ser uma boa maneira de aprender:

http://www.amazon.com/Second-Morgan-Kaufmann-Computer- Arquitetura / dp / 0120884216 / ref = sr_1_1? ie = UTF8 & s = livros & qid = 1237328559 & sr = 1-1

Outras dicas

Não é certamente um deve , mas é um exemplo agradável de uma arquitetura RISC-ish. Acrescente a isso a arquitetura IBM 360 (honesto!) E que você tem um bom conhecimento muito do espaço de conjuntos de instruções normais.

Eu acho MIPS aprendizagem (pelo menos o básico) não é tão difícil, há também o simulador SPIM você pode usar para assistir o código prazo. Se você gosta de programação de baixo nível, vale a pena uma tentativa.

O outra questão teve uma boa justificação de uma arquitectura cada vez mais obsoleta: aprender a montagem está em -se útil. No seu caso, isso não se aplica.

Eu consideraria o curso somente se ela pressupõe um conhecimento de já um montador (caso contrário, você vai gastar um monte de tempo repetindo conceitos básicos). Caso contrário, você pode ser melhor gastar o tempo com algo mais relevante (e que seria pouco provável que seja outra montadora, a menos que você tem altas expectativas de trabalhar em um processador específico (família) em breve.

Por que não aprender algo novo (programação por exemplo funcional).

Quando eu estava na escola (BS CS Tecnologia de Michigan 2008), MIPS assembly (em execução no SPIM) foi ensinado na necessária "Introdução à Arquitetura de Computadores" classe que também cobriu diferentes tipos de arquiteturas, cache, DMA, e assim por diante . Nós também aprendemos o básico de como portas lógicas e de memória dinâmica / estática são construídos a partir de componentes de nível inferior, como diodos, capacitores e transistores (nós não conseguimos muito profundo em que, o que era uma classe CS). Usamos software de simulação lógica (basicamente E / OU / etc. Portões que você pode arrastar e soltar dentro de uma grade e arame juntos) para construir uma víbora, uma ULA, e, eventualmente, uma forma muito simples de 16 bits processador RISC dada uma especificação de código de máquina, assembler, programas de amostra e saída da amostra.

Se é esse tipo de classe, eu diria que seria muito valioso. Eu encontrei o conhecimento de que a classe extremamente útil para coisas compreensão da minha classe OS (memória virtual / paginação / cache, interrupções ...), e mais tarde para a compreensão de como a JVM está lidando com bytecode. Compreender como a montagem mapeia para código de máquina mapeia para multiplexadores e ALUs e registros fez um monte de coisas que eu praticamente pensamento era mágico antes trivial e fácil de entender.

Caso contrário, este é apenas para adicionar outro conjunto de instruções para o seu cinto de ferramentas e MIPS pode não ser o único a ir com ele. É é muito fácil / simples / regular, em comparação com x86, então você não deve ter muita dificuldade com a classe. Valioso, embora? Você provavelmente poderia pegá-lo muito facilmente sem tomar uma classe se você está bastante confortável com montagem em geral, e por alguma razão têm uma necessidade para ela.

Se o seu baixo nível de entusiasta que poderia valer a pena, mas você pode ensinar-se MIPS em um fim de semana assim que eu imagino o curso vai ser mais do que apenas a programação em MIPS. Se é uma teoria hardware do computador curso usando MIPS, então eu acho que vale a pena o seu tempo.

No entanto, se é apenas MIPS de programação e você já tem uma alça sobre x86 montagem e os conceitos de programação de baixo nível, eu diria passagem na classe. Salvar-se tempo e dinheiro e passar um fim de semana ou assim mexer com MIPS usando SPIM , que schnaader apontou.

Lembre-se também de que você não explorou este bastante coisas que você nunca tenha escrito uma função recursiva na montagem.

Uma das minhas aulas nos obrigou a aprender os MIPS linguagem assembly. Bem, tecnicamente ... foi nossa própria arquitetura costume, mas fortemente baseada a partir de MIPS. Conclusão, fazê-lo. Sabendo montagem me ajudado indefinidamente, mesmo que eu odeio trabalhar esse baixo para o metal.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top