Wikipedia:Reference desk/Archives/Computing/2014 May 25

Computing desk
< May 24 << Apr | May | Jun >> May 26 >
Welcome to the Wikipedia Computing Reference Desk Archives
The page you are currently viewing is an archive page. While you can leave answers for any questions shown below, please ask new questions on one of the current reference desk pages.


May 25 edit

MMIX edit

I read that MMIX is a 64-bit RISC and instructions are 32 bits. I know there aren't any real hardware MMIX chips, but in virtual MMIXes, does that mean the instruction register is 32 bits and a fetch somehow just gets part of a word from memory, or that the instruction register is 64 bits and a lot is always wasted/unused space? 75.75.42.89 (talk) 00:32, 25 May 2014 (UTC)[reply]

MMIX link for convenience. --220 of Borg 00:50, 25 May 2014 (UTC)[reply]
(ec) These types of details are implementation-dependent. For example, an implementation could choose to always fetch two instructions at a time - even if the second instruction doesn't necessarily get executed (because of branching). An implementing compiler could then enforce word-alignment for any instruction that could be the target of a branch. I'm not sure what the Verilog implementation uses, but that code is free and open-source, so if it's important, we can dive into the code. Nimur (talk) 00:53, 25 May 2014 (UTC)[reply]
I've only read the code for about five minutes - so I'm not an expert - but FPGAMMIX implementation of core increments its program counter by four bytes, implicitly meaning that the instruction text can be addressed using 32-bit alignment (64-bit alignment is not required). On a real machine, this detail would need more consideration; the memory interface would be more complicated, and we would need to know details of its addressability and alignment requirements. Nimur (talk) 01:02, 25 May 2014 (UTC)[reply]

(edit conflict):At MMIX#Architecture the page states:

"MMIX is a 64-bit RISC, with 256 64-bit general-purpose registers and 32 64-bit special-purpose registers." (My bolding)
Note the above info. has no cite. If correct, it says the registers are all 64 bit. This allows one 64 bit 'word' to have the instruction (or operand) and data (the other 32 bits) in the register simultaneously before it is executed. Thus the space is used for data, not 'wasted', though some bits may be unused.
A page by Donald Knuth, the creator of MMIX here under 'Brief outline' says:
"MMIX is a machine that operates primarily on 64-bit words. It has 256 general-purpose 64-bit registers that each can hold either fixed-point or floating-point numbers."
So it seems that the WP MMIX page is correct. --220 of Borg 01:33, 25 May 2014 (UTC)[reply]
FPGAMMIX definitely uses a 32-bit register for current instruction:
reg [31:0] inst; /* the current instruction */
However, the code commentary does state that it diverges from Knuth in at least one (unrelated) area. Nimur (talk) 01:58, 25 May 2014 (UTC)[reply]
I feel likethink that the original poster and many responders misunderstand what "64-bit" means. A "64-bit" processor is usually just one with 64-bit GPRs. It doesn't mean the address bus or the data bus or the memory alignment requirement or the internal register holding the current instruction or anything else has to be 64 bits. An MMIX processor could have a memory interface that let it request 32 bits at a time from main memory, or, like modern x64 processors, it could fetch 256 or 512 bits at a time (a cache line). -- BenRG (talk) 07:44, 25 May 2014 (UTC)[reply]
Do you simply feel this way, or do you have a reference that expressly defines 64-bit processors in this way, i.e. that specifically states that a processor's bit depth is equal to the size of its general purpose registers? What about architectures that lack general purpose registers?
On the whole, "64-bit" is an ambiguous description of a processor. If you review many architectures, you'll find all sorts of bit-depths scattered amongst the implementation. For example, you can peruse OpenCores, a free software repository that includes source code implenting many computer architectures, including OpenRISC and OpenSPARC. When you have the RTL, all the mystery evaporates: you can review exactly which parts of the architecture operate on n-bit data.
As an exercise left to the reader: review the architecture specification to learn exactly how to turn an OR1000 from a 32-bit processor into a 64-bit processor. Exactly which portions of the architecture are changed? (Hint: on OpenRISC, like nearly every other architecture I am familiar with, the majority of changes are related to the memory interface, not the core). Nimur (talk) 02:52, 26 May 2014 (UTC)[reply]
"64-bit" is ambiguous, as you say. The original question seemed to presume that might be some reason to make the internal register holding the MMIX instruction 64 bits wide even though instructions are 32 bits wide, and that reading 32-bit instructions on a 64-bit processor would be more difficult than reading them on a 32-bit processor. Neither of those is true. Memory is probably accessed in units of more than 64 bits even on a 32-bit processor, and the only sensible size for the instruction register is 32 bits because that's the size of the instructions. Both you and Borg seemed to think there was some reason for the instruction register to be 64 bits. Borg said something about the other 32 bits holding operand data, and you implied that reg [31:0] inst; was a potential divergence from Knuth's spec. Neither of those makes sense.
A 64-bit processor is probably going to support more address bits than a 32-bit processor (though probably less than 64 of them). That's a simple change to the memory interface in principle. It could be complicated in practice. -- BenRG (talk) 06:49, 27 May 2014 (UTC)[reply]

Desktop PC Alteration edit

Hi, my sister has a HP-Compaq desktop PC and I was curious if there was any way in which I could completely uninstall all of the HP drivers, etc and replace them with my fujitsu equipment? --Andrew 22:14, 25 May 2014 (UTC)[reply]

I don't see why not. Is this a Windows O/S ? We are talking about printer/scanner/digital camera drivers, right ? StuRat (talk) 03:40, 26 May 2014 (UTC)[reply]
Yes, OK for printers etc. but don't uninstall the drivers for the hardware and interfaces inside the PC. Dbfirs 07:41, 26 May 2014 (UTC)[reply]
  • Oh, I was hoping there was a way for me to completely strip down the PC so that it was no longer a HP PC, and that I could rebuild it as a fujitsu machine --Andrew 14:44, 26 May 2014 (UTC)[reply]
You might find it useful to read the article on Device driver, then decide how far you are going to go with the strip-down. My knowledge of computer architecture pre-dates the old northbridge and southbridge arrangements, when the motherboard would always have remained an HP motherboard. Perhaps someone who knows about modern architecture will know how far you could go with removing all traces of HP. Dbfirs 17:58, 26 May 2014 (UTC)[reply]
(EC) It may help if you explain what you've trying to achieve. For an OEM computer from such a major manufacturer, nearly all the components could be consider HP-Compaq ones. The motherboard would very likely be a custom design and would at a minimum usually have a HP-Compaq BIOS/EFI. The case would similarly probably be a custom design and would have some some HP-Compaq branding. The PSU could also be a custom design, tailored to the specifications of the computer (such as the case and power requirements), if you're unlucky even the connections won't be standard ATX. The RAM would likely be standard DIMMs provided it isn't soldered RAM, but the sticks would probably be OEM sticks specific to HP-Compaq, perhaps even with HP-Compaq branding on them and/or in the EEPROM. The CPU would be a standard socket, and would often be standard OEM CPU available to most large scale purchasers (and possibly available in boxed config just with different warranty terms and coming with a HSF). Although even this isn't always the case as you do get special CPUs only sold to one or two OEMs. Speaking of the HSF, although it'll likely use the standard attachment it probably won't be a standard Intel or AMD fan as you'd get in a retail box. But I'm not totally sure if these are usually models only sold to the specific OEM or they are general purpose ones. The HD would probably be a 3.5" inch and just a standard OEM HD available to any larger purchasers (and really the only difference if any from the bulk HDs available to riffraff like you and me that it may not have a warranty). The video card, if it has a discrete one, I'm not so sure. Note that there's a good chance that the CPU and HD manufacturer will have the serial numbers for thes listed as being sold to HP-Compaq somewhere in their records. In any case, you could I guess take the CPU and HD and buy a new mobo, RAM, HSF perhaps, case, PSU and put it all together and arguably say you don't really have a HP-Compaq PC (in the sense nothing there is really specific to HP-Compaq), but there's the obvious question of why you'd want to do that. Nil Einne (talk) 18:06, 26 May 2014 (UTC)[reply]
  • The computer as it is at the moment is really bad, and the system recovery is not working at all. We have fujitsu discs with drivers for all of their software and a version of Windows 8.1. I thought that it may have been possible to simply uninstall HP/Compaq features without having to pick apart the computer and alter the motherboard; I didn't realise that the components inside the computer were custom-made to make it HP-Compaq. Thanks for all of the information though. --Andrew 20:15, 26 May 2014 (UTC)[reply]
If it's that bad, you might want to try wiping the hard drive, retaining the HP hardware components, and seeing how far your Fujitsu discs will take you. There will be some incompatibility with the drivers, but you will probably be able to download the essential HP drivers via the internet. You will have to boot from a CD or pen drive after wiping the hard drive, and the system will need access to some essential drivers. If it can't find them, then there's no guarantee that you will get it working again. Do you have no HP discs at all? Could you borrow an HP disc from someone with a similar model? If not, perhaps you could save the essential drivers onto a CD before you wipe the hard drive. Windows 8 might not be the best operating system for an old computer because it needs lots of disc space and memory. You can see the minimum recommended specs in our article Windows 8#PCs. Dbfirs 21:36, 26 May 2014 (UTC)[reply]
Really unless you have have highly specialised components you shouldn't need to worry too much about drivers or software on a modern version of Windows provided your computer isn't so old that there are no drivers at all for whatever component (which is fairly rare even with very old stuff). And thre's no need to turn your computer in to a Fujitsu computer.
I'm a bit confused about your copy of Windows 8.1. If it's a generic copy, then you should be able to just install it and it will probably work. If it's a Fujitsu copy then there's a chance it may not install. Even if it does install, it's unlikely the copy of Windows is licenced for use on that computer, and so it will be unlicenced. If you do happen to have a licence for Windows 8 somewhere, you could probably get or modify the copy of Windows you have to work with this licence but this isn't a simple process and wikipedia is not the place to ask for it. If you have no licence for Windows 8 for the computer in question, you shouldn't expect help installing anything but a trial here.
Note that other than disk space requirements, the basic requirements between Windows 8/8.1 and Windows 7 and Windows Vista aren't really that different and Windows 8 tends to perform better on border line systems (including RAM) than Windows 7 (which in turn performs signifcantly better than Windows Vista). If disk space is really a problem on this computer, then it's likely that the other components are so old that any of these versions of Windows shouldn't be considered. (The exception would be if the computer has a very small system SSD.)
Perhaps the only question mark is that it's not possible to disable Desktop Window Manager in Windows 8 like you can in Windows 7. Disabling this may help slightly on low end systems in Windows 7, but it's really much more GPU dependant so provided you have a somewhat modern GPU (not something ultra borderline like the Intel GMA9xx family) it's not likely to be worse on Windows 8. In any case, I haven't seen much evidence either way on whether Windows 8 performs worse with it's software DWM mode compared to the composition without DWM in Windows 7, I wouldn't assume it does. (Remember you can still disable 'Peek' etc.)
And although I know some people still consider ir okay to use Windows XP, I don't personally recommend it, particularly if you don't know that much about what you are doing.
So really, if the system is too old to use Windows 8/8.1, than the only recommendation would be another OS, probably some *nix (some Linux or BSD probably) rather than using Windows. (If you prefer Windows 7 to Windows 8/8.1 that's a different matter.) Okay, there are the Windows Embedded versions but they aren't available to the ordinary user nor necessarily easy to install and use.
Nil Einne (talk) 18:19, 28 May 2014 (UTC)[reply]
Yes, you're right (though Vista will run (slowly) in 500MB of RAM). I was worried that Andrew's sister's HP-Compaq might have a Pentium processor with less than half a GB and currently running XP. If that is the case then your suggested alternative OS is the best option. Dbfirs 16:23, 29 May 2014 (UTC)[reply]