Partially correct. The frontside bus has been here all along, moving data from the RAM to the CPU. L2 and L3 cache aren't/weren't replaced by the bus, but rather try to help the bus by storing specific information so the CPU can get to it faster. Basically, cache will store data recently used, and which may be used soon (temporal locality), as well as storing data close to other data recently used (spacial locality). The CPU first checks this cache for the instruction or data it wants, and if it doesn't find it, gets it from RAM. Depending on what kind of cache it is (write through, write back, x-way set associative, etc.) it will write the information it needs, so the CPU may access it later.
Virtual memory, on the other hand, has to do with paging. f you ever used the terminal to run the 'top' command, one of the statistics it shows is how many page ins and page outs have occured. What happens when you run a process (a program is made up of one or more processes), a copy of that process is created. This process, or the combination of all processes may be too large to fit in your physical memory. In that case, only the active parts of the processe(s) are kept in physical memory, and the rest of it is kept on the hard drive. When a process does something, it first looks to use the part of it in physical memory, as that is much faster than a hard drive. If it doesn't find it, it has to look for what it needs on the hard drive, bring a chuck (page) over to physical memory, and keeps on working.
The concept behind both cache and virtual memory is the same, to have the data the CPU may need stored in a fast location, so that the machine runs as fast as possible. Whenever the CPU can find what it needs in cache or a physical memory page, then everything works at top speed. But if the stuff it needs is not found, then a tremendous speed hit is taken. That's why it is good to have accurate cache, and as much RAM as possible.
Of course, this is only the basics behind both technologies, as explaining them would take many pages (deja vue?
). But you should understand well enough. It's amazing what one learns in a single semester of Computer Architecture