中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 硬件维修 > 综合技术
CPU DIYer
作者:未知 时间:2005-09-13 23:53 出处:Blog.ChinaUnix.net 责编:chinaitpower
              摘要:CPU DIYer

What's this? ?it's a PC? No, it's only a CPU made manually....................

Let's to see how the owner to introduce it?

I'm calling this computer the "Magic-1", or M-1 for short.  It's a one-address, microprogrammed machine with  one-byte opcodes.  It features 8/16-bit data operations, functioning on an 8-bit wide data bus with 16-bit addresses (mapped via 2K-byte pages into a 22-bit physical address space).   Code and data address spaces can be shared or disjoint, giving each process up to 128K bytes of addressing.   User and supervisor modes exist, along with hardware address translation, memory-mapped IO, and support for DMA and externally-generated interrupts.  As far as components go, it is built entirely out of 74LS and 74F-series TTL devices plus modern SRAM and old bi-polar PROMs for the microcode store.  I designed it to run at 4 Mhz, but missed a couple of critical paths - so ended up at 3 Mhz.


Magic-1 is a homebuilt minicomputer.  It doesn't use an off-the-shelf microprocessor, but rather has a custom CPU made out of 74 Series TTL chips.  Altogether there are more than 200 chips in Magic-1 connected together with thousands of individually wrapped wires.  And, it works.  Not only the hardware, but there's also a full ANSI C compiler for Magic-1 (retargeted LCC), and  a rudimentary homebrew operating system.


project goals are:
bulletTouch the magic.  By this I mean to gain a deeper understanding of how computers work, and specifically computers similar to those of the late 70's and early 80's that first fired my interest.  For this reason, the Z80 loomed large in my mind throughout the design process, and running with an 8-bit data bus and 16-bit addresses just seemed right.  Although I'm largely trying to use parts that would have been current in that time, I'm not shooting for historical accuracy.  My choice of 74xx is a nod to the past, and my choice of 74Fxx has more to do with availability.
bulletTTL rather than FPGA. My reasons here pretty much boil down to "because that's what I want to do."  FPGAs do sound fun, but I really am drawn towards using technology that is similar to that which was current when I first became introduced to computers.  Perhaps for Magic-2....
bulletLearn more about computing areas in which I have interest, but much ignorance.   From my years as a software developer, I've gained a passing familiarity with language tools.  However, I really want to better understand hardware and operating systems.  To this end, I'm pushing the hardware complexity to what I consider the limits of my hobbyist abilities, and am including support for preemptive multitasking and paging to enable me to support a "real"  operating system for my machine.
bulletBuild something real.  I'm proud of some of the software I've written, but it would be nice if I could have something physical to show for all my work.  That's part of the reason I'm going with wire-wrap.  My wife and kids may not be impressed by my instruction set design, but all those wires ought to at least get some sort of reaction from them ("Geez Dad, you're such a nerd.  Would you please put that thing away before my friends come over and you embarrass me to death?").
bulletFunctionality over Speed.  I don't really need this machine to be as fast as possible.  Efficient, yes - but wherever possible I traded off speed for simpler circuits.  
bulletCompactness.  One of my pet peeves is how bloated modern software is.  I think there's a lot you can do with 128K bytes of addressing, and I like the idea of keeping things compact and utilitarian.  I've tried to construct an expressively dense set of 1-byte opcodes. 


If you want to get more detailed information, pls access  http://www.homebrewcpu.com/
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有